I’m not sure if the ACF Javascript API is available by default, or if you have to install it previously, and since I can’t use it on here, this will pretty much be pseudo code for you to try, but try this:
In whatever page’s JS area, you can add a document ready state to make sure the page has loaded, and listen for clicks.
document.addEventListener("DOMContentLoaded", function() {
var coupons = document.querySelectorAll(".class-name-of-coupon");
Object.values(coupons).forEach( (el) =>
{
el.addEventListener("click", function()
{
if ( acf.has("total_clicks") );
{
var prevClicks = acf.get("total_clicks");
acf.set("total_clicks", prevClicks++);
}
}
});
});
This will take every coupon with the class “class-name-of-coupon” and put a click listener on it that increments the field total_clicks
(if it exists) via the ACF API. I can’t tell if you have access to the API, or how one would enable it, but that is the code that you would use.
Let me know how it goes!