wp-rocket icon indicating copy to clipboard operation
wp-rocket copied to clipboard

WooCommerce: WP Rocket's "clean" functions run numerous times during checkout

Open vmanthos opened this issue 5 years ago • 11 comments

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/

vmanthos avatar Jan 29 '20 10:01 vmanthos

Related ticket https://secure.helpscout.net/conversation/1083550989/146172?folderId=2675957

camilamadronero-zz avatar Feb 14 '20 14:02 camilamadronero-zz

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!

svaldesm avatar Feb 14 '20 14:02 svaldesm

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.

vmanthos avatar Feb 24 '20 08:02 vmanthos

Any update ? What i found on my website is that checkout is vary slow (30+sec) if the products belongs to multiple categories.

naratt avatar Sep 19 '20 05:09 naratt

This case has the same issue when a product belongs to multiple categories: https://secure.helpscout.net/conversation/1275188620/192678/

sandyfzu avatar Sep 21 '20 19:09 sandyfzu

Any update?

jazir555 avatar Feb 02 '21 07:02 jazir555

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...

GeekPress avatar Feb 02 '21 08:02 GeekPress

Related: https://secure.helpscout.net/conversation/1416492108/236984/

NataliaDrause avatar Feb 15 '21 07:02 NataliaDrause

Possibly related: https://secure.helpscout.net/conversation/1458495144/249058/

NataliaDrause avatar Mar 21 '21 13:03 NataliaDrause

Possibly related: https://secure.helpscout.net/conversation/2024580575/372051/

NataliaDrause avatar Oct 03 '22 13:10 NataliaDrause

related: https://secure.helpscout.net/conversation/3133053074/598503?viewId=7406897

rosamillan avatar Nov 20 '25 17:11 rosamillan