What this problem looks like
Cart update failures show up as frozen quantity fields, a mini-cart that never refreshes, or products that vanish on the next page load. The underlying cart data in WooCommerce is often fine; the browser never receives the updated fragment.
Object caching plugins that cache WooCommerce sessions are a frequent cause on managed WordPress hosts. Page cache that stores the cart page HTML is another.
Step 1: Symptoms that narrow the cause
If add-to-cart redirects but the cart page is empty, sessions are not persisting. If the cart page shows items but the header mini-cart is wrong, fragment AJAX or theme JavaScript is failing.
- Quantity plus and minus buttons do nothing: theme JS conflict.
- Cart clears on every page: cookie or session misconfiguration.
- Wrong totals after coupon: see coupon tutorial or tax settings.
Step 2: Flush permalinks and verify page IDs
Go to Settings → Permalinks in wp-admin and click Save without changing anything. Then open WooCommerce → Settings → Advanced and confirm Cart and Checkout pages are set and published.
Step 3: Exclude cart from every cache layer
Cart and checkout must bypass full-page cache. Also disable cart fragment caching in optimisation plugins. Some themes cache mini-cart HTML in transients; clear theme caches from the theme panel if one exists.
Add this to wp-config.php in your site root only during diagnosis:
define( 'WP_REDIS_DISABLED', true ); Step 4: Debug AJAX cart fragments
Open DevTools → Network, add a product, and watch for requests to ?wc-ajax=get_refreshed_fragments or admin-ajax.php. A 403 forbidden or 500 internal server error response often means a security plugin or mod_security rule is blocking WooCommerce AJAX.
Step 5: Hosting session and cookie checks
PHP sessions must be writable on the server. Ask your host if session.save_path is misconfigured on your plan. Ensure your site forces HTTPS so the woocommerce_cart_hash cookie is not blocked as third-party or insecure.
Cookie consent plugins that block functional cookies before acceptance will break cart persistence for new visitors in the EU and UK.
Step 6: Isolate plugin conflicts
Rename wp-content/plugins to plugins.disabled via File Manager, SFTP, or FTP. If the cart updates correctly, rename the folder back and activate plugins one at a time in wp-admin until the cart error returns.
When to stop DIY and hire help
Call a developer when cart issues persist on a default theme with caching disabled, when session tables grow millions of rows, or when multisite or headless setups are involved. BugShield fixes cart and session bugs at a confirmed price without hourly billing surprises.