Skip to content
Website Rescue Rescue

WooCommerce Errors

WooCommerce Checkout Not Working

Intermediate Risk: medium

Last reviewed

Hosting access may not be needed Database access usually not needed

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.

Intermediate

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

  1. 01 Plugin or theme JavaScript conflict (optimizers, page builders, security, or checkout customizers)
  2. 02 Full-page cache or CDN caching cart/checkout and serving stale nonces or session HTML
  3. 03 Payment gateway API keys, webhook URLs, or test/live mode misconfigured
  4. 04 Theme or builder template overrides of WooCommerce checkout templates that are outdated after an update
  5. 05 SSL, mixed content, or cookie/SameSite issues preventing cart session persistence
  6. 06 Security plugin, host WAF, or Cloudflare rule blocking POST to checkout or WooCommerce AJAX
  7. 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

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

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

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

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

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

  6. 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? +
Cart pages are simpler. Checkout runs more JavaScript, refreshes totals via AJAX, creates an order draft, talks to payment APIs, and is sensitive to caching, cookies, and gateway configuration. A problem can affect only that final step.
Will disabling plugins delete my orders or products? +
No. Deactivating plugins does not delete WooCommerce orders or catalog data stored in the database. Some features pause until you reactivate the right plugins.
Can a caching plugin break WooCommerce checkout? +
Yes. Full-page caching of cart/checkout, or aggressive JavaScript defer/minify on checkout scripts, frequently causes endless spinners and session loss. Exclude shop, cart, checkout, and account URLs from page cache at every layer.
A customer was charged but there is no order—what now? +
Do not keep retrying checkout. Find the charge in the payment gateway, match it to WooCommerce logs and webhooks, and reconcile manually. Fix the webhook or order-creation path before taking more live payments.
Should I update WooCommerce on the live store to fix checkout? +
Only with a backup and ideally a staging test first. Updating during an outage can widen the failure. Prefer isolating the conflict, cache, or gateway issue; schedule updates when you can roll back quickly.
Why do payment methods disappear after the order review refreshes? +
Often a JavaScript error, blocked `update_order_review` AJAX call, or gateway script failing to load. Check the console and Network tab during the refresh; that is usually more informative than reinstalling the gateway immediately.

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.

Written by Website Rescue

Last reviewed

Platform note: Full rescue available for WordPress and self-hosted sites. Wix, Squarespace, Webflow, Weebly, and similar closed builders have very limited backend access — fixes may not be possible. I will tell you honestly before we start.