Update. My live site still received intermittent duplicated orders, like once per week. Nowadays, customers are really mad at this...
Anyway, I did some further changes today and I will report if helps.
1. I change AJAX time-out from 6s to 8s. A few months ago, I changed it from 4s to 6s. Not sure if it helps.
2. According to the following post
https://www.zen-cart.com/showthread....76#post1317476
I change the setTimeout('button_timeout()', 4000) from 4s to 20s. There are two files uses this function:
\includes\modules\pages\checkout_confirmation\jscript_double_submit.php
\includes\modules\pages\checkout_one_confirmation\jscript_main.php
I changed both to 20s. Here is a similar post from Stripe.com plug-in
https://www.zen-cart.com/showthread....dule&p=1386282
The author recommended to re-enable the submit button after 9s. So if 20s works on my end, I may try 10s instead.
Background: I'm using zc 1.5.7d, opc 2.4.4b2, paypal pro and express, php 7.4
Bookmarks