WooCommerce: WP Rocket's "clean" functions run numerous times during checkout
On WooCommerce sites, when:
- items are added in the cart,
- User Cache is enabled and
- a "native" payment gateway is used, i.e. one that uses WooCommerce's stock update functions,
WP Rocket's rocket_clean_post() and rocket_clean_files_users() are called numerous times, proportional to the items that were added in the cart.
If those are just a few, everything is working as expected. However, when a lot of items are added in the cart, this can lead to the script timing out and the order taking a lot of time to be processed and completed.
For the rocket_clean_files_users(), we could limit it to run just once per order.
Reference: WooCommerce's functions/methods that are used to update the stock
wc_reduce_stock_levels
https://github.com/woocommerce/woocommerce/blob/7701d4b57cb20dc89e25bb7bf2ff872d85f4c535/includes/wc-stock-functions.php#L139-L196
wc_update_product_stock
https://github.com/woocommerce/woocommerce/blob/7701d4b57cb20dc89e25bb7bf2ff872d85f4c535/includes/wc-stock-functions.php#L42
update
https://github.com/woocommerce/woocommerce/blob/7701d4b57cb20dc89e25bb7bf2ff872d85f4c535/includes/data-stores/abstract-wc-order-item-type-data-store.php#L63-L92
save
https://github.com/woocommerce/woocommerce/blob/7701d4b57cb20dc89e25bb7bf2ff872d85f4c535/includes/wc-stock-functions.php#L50
Cache clearing takes place here: https://github.com/woocommerce/woocommerce/blob/dc5712db84b45fa215c5096cf55e669292e89383/includes/abstracts/abstract-wc-product.php#L1354-L1394
Related ticket: https://secure.helpscout.net/conversation/1064404566/142633/
Related ticket https://secure.helpscout.net/conversation/1083550989/146172?folderId=2675957
I'm the guy who reported the issue by Camila. Happy to help test and see if there's a solution. I love WP Rocket but our best customers, the ones who make big orders, have an awful experience because of this. Thanks for your help!
Another ticket: https://secure.helpscout.net/conversation/1090990969/147529/
As a possible solution, we could disable the automatic cache clearing/preloading until after an order has been processed.
We would need to store the IDs of the products for which we need to clear cache/preload.
Any update ? What i found on my website is that checkout is vary slow (30+sec) if the products belongs to multiple categories.
This case has the same issue when a product belongs to multiple categories: https://secure.helpscout.net/conversation/1275188620/192678/
Any update?
Any update?
If we don't comment on the issue, it means there is no update. Please note we have 445 opened tickets, and we need to prioritize...
Related: https://secure.helpscout.net/conversation/1416492108/236984/
Possibly related: https://secure.helpscout.net/conversation/1458495144/249058/
Possibly related: https://secure.helpscout.net/conversation/2024580575/372051/
related: https://secure.helpscout.net/conversation/3133053074/598503?viewId=7406897