WooCommerce Checkout Not Working: Fix (2026)
Quick answer
WooCommerce checkout failures are almost always one of: (1) a JavaScript error blocking the Place Order button, (2) a payment gateway plugin conflict, (3) cart-fragment caching, or (4) a broken permalink/REST API. Diagnose by opening the browser Console tab on the checkout page, the first red error line usually names the plugin or file responsible. Fix by isolating the plugin (rename its folder via SFTP), clearing cache, and rechecking payment-gateway API keys.
Diagnose first, fix second
"Checkout not working" hides a dozen different failures. Before touching plugins, open the checkout page in an incognito window, open browser DevTools (F12) → Console tab, and try to place a test order.
The first red error line tells you the file causing the problem. That single check saves hours of guess-and-check.
Fix #2, Payment gateway rejecting the order
If you get to "Processing…" and then an error, the payment gateway failed. Check the WooCommerce logs at WooCommerce → Status → Logs, Stripe, PayPal, Square all write detailed failure reasons here.
Common causes: expired API keys, live-mode toggle mismatch (test keys in production), or a webhook URL misconfigured after a migration. Rotate keys in the gateway dashboard, paste them into WooCommerce → Settings → Payments, save.
Prefer we just fix it?
Broken checkout and missing order emails cost revenue every hour. Our e-commerce maintenance covers WooCommerce + Shopify with same-day SLA, from $149/mo. Learn more about e-commerce website maintenance or grab a slot below.
Fix #3, Cart fragments / caching
If the cart empties or item counts are wrong on checkout, cache is serving stale HTML. Every serious WooCommerce site excludes /cart/, /checkout/, /my-account/, and the woocommerce_items_in_cart cookie from cache.
In WP Rocket: Cache → Never Cache (URLs), add all three page slugs. In LiteSpeed Cache: Cache → Excludes → URIs. In Cloudflare APO or a page-rules cache, add matching exclusions there too.
Fix #4, Conflict-test with a default theme + core plugins only
The classic WordPress diagnosis. Switch temporarily to Storefront (WooCommerce's default theme). Deactivate every non-essential plugin (keep only WooCommerce, your payment gateway, and Storefront). Try checkout.
If it works: reactivate plugins one at a time, testing checkout after each. The plugin that breaks it is your problem.
If it still fails on Storefront + WooCommerce only, the issue is WooCommerce core, the payment gateway, or the server (memory, PHP version). Read the debug log next.
Fix #5, Enable WooCommerce logging + PHP debug
WooCommerce → Status → Logs. Enable Fatal Errors logging. Reproduce the checkout failure. Any PHP fatal that occurred during checkout is now in the log with a file path and line number.
Also enable WP_DEBUG_LOG in wp-config.php to catch anything WooCommerce didn't log.
When to call for help
Checkout downtime = revenue loss per minute. If your store is broken right now and the diagnostics above aren't pointing at anything obvious, our emergency e-commerce rescue starts at $149 with typical resolution in under 30 minutes.
Common questions
Why is my WooCommerce checkout not working?+
Open the checkout page in incognito, open browser DevTools → Console tab, and try to place a test order. The first red error line tells you which plugin or file is failing. Most cases are: (1) a JavaScript conflict blocking the Place Order button, (2) a payment gateway API key issue, or (3) cache serving stale cart data.
How do I stop caching WooCommerce checkout page?+
Exclude /cart/, /checkout/, and /my-account/ from your caching plugin. In WP Rocket: Cache → Never Cache (URLs). In LiteSpeed Cache: Cache → Excludes → URIs. Also exclude the woocommerce_items_in_cart cookie. Cache serving stale cart HTML is the #1 cause of "cart empties on checkout" complaints.
Why does the WooCommerce Place Order button do nothing?+
A JavaScript error is blocking the click handler. Open DevTools → Console and reload the page, the first red error line names the culprit. Usually a page-builder or optimization plugin combining or deferring jQuery. Exclude jQuery from your optimization plugin's combine/defer settings.
How do I test WooCommerce for plugin conflicts?+
Switch to Storefront theme, deactivate everything except WooCommerce and your payment gateway. Try checkout. If it works, reactivate plugins one at a time until it breaks, the last plugin activated is the culprit. This 15-minute test saves hours of guessing.
Want help with this?
The pages below go deeper, by service and by city.
Services
Want this handled for you?
Send the site and the symptom. A senior WordPress engineer opens it, tells you what is actually broken, and replies within one business hour. No card, no sales call, no obligation.
