WooCommerce Errors
WooCommerce Checkout Not Working
Last reviewed
Direct answer
WooCommerce checkout usually fails because of a JavaScript conflict, a cached checkout page, a misconfigured payment gateway, or a security rule blocking checkout AJAX. Clear caches and exclude cart/checkout from page cache, inspect the browser console and WooCommerce logs, conflict-test with only WooCommerce plus the gateway active, then verify gateway credentials and webhooks—never experiment with live API keys during peak sales without a backup.
When customers cannot complete checkout—endless loading, redirect back to cart, missing payment methods, or failed orders—the store stops taking revenue even if the catalog still looks fine. This guide separates front-end JavaScript and cache problems from gateway and server failures so you fix the right layer first. Follow the safe order below on a live store: observe, clear cache, read logs, then isolate plugins—before changing payment secrets.
What the error means
“Checkout not working” means the path from cart to paid order is broken somewhere between loading the checkout page, the Place order AJAX request (`wc-ajax` or `admin-ajax.php`), payment gateway handoff, and order creation in WordPress. Products and the cart can still work while the final purchase step fails with a spinner, a silent redirect, a missing gateway, or a charge that never becomes an order. WooCommerce expects uncached pages, working cookies/sessions, HTTPS, and clean JSON responses from those AJAX calls; anything that corrupts that chain looks like “checkout is broken.”
Common symptoms
- Place order button spins forever or does nothing when clicked
- Checkout redirects back to the cart with no clear error message
- Payment methods are missing, grayed out, or disappear after totals refresh
- Customer is charged in the gateway but no matching WooCommerce order appears (or the reverse)
- Browser console shows JavaScript errors or failed `/?wc-ajax=` / `admin-ajax.php` requests
- Checkout works for admins or logged-in users but fails for guests (or vice versa)
- Order review totals never finish loading; spinner never clears on the checkout page
Most likely causes
- 01 Plugin or theme JavaScript conflict (optimizers, page builders, security, or checkout customizers)
- 02 Full-page cache or CDN caching cart/checkout and serving stale nonces or session HTML
- 03 Payment gateway API keys, webhook URLs, or test/live mode misconfigured
- 04 Theme or builder template overrides of WooCommerce checkout templates that are outdated after an update
- 05 SSL, mixed content, or cookie/SameSite issues preventing cart session persistence
- 06 Security plugin, host WAF, or Cloudflare rule blocking POST to checkout or WooCommerce AJAX
- 07 PHP fatal error or corrupted AJAX response (HTML/warnings mixed into expected JSON) during order creation
What changed before the problem started
- WooCommerce, payment gateway plugin, or related extension was updated
- Theme, page-builder checkout layout, or custom checkout template changed
- Caching, Cloudflare, or security/firewall rules were tightened
- SSL certificate, domain, or www vs non-www configuration changed
- PHP version raised on the host around the same time checkout broke
- New coupon, shipping, tax, multi-currency, or optimization plugin installed
Troubleshooting steps
- 01
Document the failure without placing real card charges
Note exactly what happens: blank page, endless spinner, redirect to cart, “payment method unavailable,” or gateway decline. Reproduce once in a private browser window as a guest on mobile and desktop if possible. Prefer gateway test/sandbox mode only if you know how to switch back; do not run live card charges while diagnosing.
- 02
Purge caches and exclude cart, checkout, and account URLs
Clear WordPress page cache, host cache, and Cloudflare (if used). Confirm cart, checkout, and my-account URLs are never full-page cached at every layer (plugin, server, CDN). Stale checkout HTML and expired nonces are a leading cause of “Place order does nothing.”
- 03
Inspect the browser console and Network tab on Place order
Open DevTools → Console and Network, reload checkout, then click Place order. Capture red JavaScript errors and failed XHR/fetch calls to `/?wc-ajax=` or `/wp-admin/admin-ajax.php`. Screenshot status codes and response bodies before you change plugins—those clues decide whether this is front-end, blocked AJAX, or a PHP crash.
- 04
Read WooCommerce → Status → Logs and recent order statuses
Open WooCommerce → Status → Logs for gateway and fatal-error logs around the failure time. Check Orders for Pending payment, Failed, or missing orders after a known charge. Gateway log lines often name the exact API, webhook, or credential problem.
- 05
Conflict-test with a default theme and minimal plugins
Prefer staging. On production, only during a low-traffic window with a full backup already taken. Switch to Storefront or a default Twenty theme and leave only WooCommerce plus the payment gateway active. If checkout works, re-enable other plugins in small batches until it breaks again, then leave the culprit off.
- 06
Verify gateway settings without casually rewriting live secrets
Confirm the gateway is enabled, the correct test/live mode is selected, webhooks point at the current https domain, and the gateway dashboard is not reporting failed deliveries. Read existing keys and webhook endpoints first; paste new secrets only when you are sure the old ones are wrong and you have a rollback plan.
When to stop troubleshooting
Stop DIY changes on a live store if customers are being charged without orders, orders appear without payment, you cannot restore checkout within one short maintenance window, or diagnosis requires changing live API keys you do not fully control. Revenue-critical checkout outages are appropriate for professional rescue rather than stacking more plugin toggles mid-sale.
Information to collect before requesting help
- 01 Exact customer-facing symptom plus screenshot of checkout and the browser console
- 02 Whether failure affects guests, logged-in users, mobile, desktop, or all traffic
- 03 WooCommerce, theme, and payment gateway plugin versions
- 04 Recent plugin/theme updates or cache/security/CDN changes
- 05 WooCommerce Status log excerpts and any gateway dashboard errors
- 06 Whether test/sandbox mode works while live mode fails (or the opposite)
- 07 Backup timestamp from before you started changing plugins or keys
How a professional repairs the problem
A pro isolates whether the break is front-end JavaScript, server/PHP, cache, WAF, or the payment gateway; conflict-tests safely on staging or with controlled plugin toggles; repairs template overrides and cache exclusions; verifies webhook and SSL handoff; reconciles any orphaned charges; and confirms a clean test order path before returning the store to full live traffic with monitoring on checkout AJAX.
Frequently asked questions
Why does the cart work but checkout fails? +
Will disabling plugins delete my orders or products? +
Can a caching plugin break WooCommerce checkout? +
A customer was charged but there is no order—what now? +
Should I update WooCommerce on the live store to fix checkout? +
Why do payment methods disappear after the order review refreshes? +
Repair dispatch
Still Need Help Fixing Your Website?
If you are not comfortable editing website files, changing server settings, repairing a database, or troubleshooting a live website, professional help may prevent additional damage or downtime. We will review the problem before accepting the repair.
- You will receive a clear explanation of the likely cause.
- We will tell you if the issue falls outside our repair scope.
- No additional work will be performed without approval.
- A backup should be created whenever access and website condition allow it.
Do not share passwords through an unencrypted contact form.