Hello Cawalit,
I don't think this is possible and is a current limitation within Genesys. The default wrap-up code DONE button cannot be completely disabled or removed from the UI. This is a core component of the Genesys UI for handling after call work.
The only "work around" I can think of using the script-first approach, which it seems like you are almost there. You will need to configure your custom script to handle the wrap-up code selection and API calls first. The script can include validation to ensure all required data is captured before allowing completion. Then train the agents to use only the scripts done button.
You could always submit this idea to our ideas portal to see what kind of traction or how popular something like this could get.
I would also recommend following this Dev Community post as it looks like something similar to what you are trying to do.
Cheers,
------------------------------
Cameron
Online Community Manager/Moderator
------------------------------