lexopa
Forum Replies Created
-
Forum: Plugins
In reply to: [WooCommerce] Persistent cart mixing between usersI have to say, I am beyond disappointed and w/ the mess that is quickly becoming the Woocommerce Cart. Oftentimes these issues can be attributed to caching and working in tandem with your hosting provider to cross things off the list makes perfect sense to begin with.
I am in the middle of studying a myriad of issues we’ve been having w/ WC Carts, one of which is as you describe is having products inside the cart from one session, be available in another session.
Ever since WC3, we’ve noticed our dynamic pricing plugin (which works by modifying price per item in the cart) would work intermittently. So the item would get added to cart properly, w/ the correct price, but the cart fragments used by the mini cart wouldn’t be correct, intermittently. We’ve noticed a bunch of developers have been adding jQuery(“body”).trigger(“wc_fragment_refresh”); to their various tools, which will trigger a fragments refresh, but this seems to be a pretty heavy operation.
Another issue that we can reliably replicate now, which was not there in the WC2.6 branch, is that the heavier the site (the more plugins you have active) the slower add to cart AJAX operations occur. Depending on what endpoint your theme/plugin use for AJAX add to cart, it can be even heavier. However, the main issue that is happening now is there seems to be a race condition between cart hashes. So imagine adding something to cart that that takes about 1 second, at the same time also adding more items to cart before the other item has been successfully reflected in the minicart (so it did its XHR round trip), as the responses return from those POSTs your mini cart will continue to flash with various fragments, seemingly items would show up then disappear from the cart, and eventually you will end up with a mixed bag of what is in cart, but certainly NOT in the order you clicked add to cart on your products and oftentimes missing products from cart altogether.
To me it seems the entire system needs to be revisited, because it is an absolute buggy mess, not to mention it is miles behind the competition. I am sure there are workarounds that developers are fighting through as we speak, but this is once again something that was still slow and behind in 2.6, but in 3.x it just became a total nightmare.