I also have encountered a similar problem and can't find a specific plugin to solution the problem. Because of this, it's going to have to be a custom solution sadly. Here are what I see as the potential solutions:
(I use Download Monitor Wordpress plugin to keep track of downloads and has a feature "Force Download" which hides the actual file URL AFAIK)
- Enable "Member only file?" feature of plugin.
- This is good for specific files as I can state to use a pre-generated Login/Password to agree to the EULA (with link) and download the file (the site doesn't allow registration so it would be limited to what accounts I create. The problem is I don't think this is a very user friendly way of controlling the EULA agreement process and confirms the EULA signoff properly if they just keep using the login credentials.
- The main issue is that people could save the file URL (nd copy/paste in email/other site and just download the file afterwards without the proper EULA signoff.
- Modify the plugin to check for a cookie field that is enabled from a EULA page that the user has to go through first.
- Don't prefer this feature as if the plugin gets updated, it might break the code.
- I have the plugin to do a Custom download URL which redirects the http://somesite.com/download/filename.zip to the default /wp-content/plugins/download-monitor/download.php?id=1. I can do a pre-redirect to a EULA check PHP page/template to see IF it needs a EULA signoff to display the agreement and if agreed then push the file.
This is the best way of handling it as it is customizable, doesn't break the plugin, people can share the file URL safely and still have EULA signoff and should be fairly easy to implement. I haven't completed the solution but I see no major issues (Assuming you are familiar in using the default plugin template as a guide to implementing the queries/check in the code.)