New 24/7 monitoring and daily cloud backups now included in every Shield Pro plan.

Checkout

How to fix WooCommerce checkout not working

Checkout is where revenue dies quietly. A spinner that never finishes, a grey screen, or a form that reloads without charging usually means JavaScript, sessions, or a payment plugin conflict. This tutorial walks through the checks store owners can run before touching live payment keys.

Time: 25-45 minutes Level: Intermediate

What this problem looks like

WooCommerce checkout depends on AJAX updates, PHP sessions, and often third-party payment iframes. When any layer breaks, customers see endless loading or a form that submits but creates no order.

Most checkout failures are not payment gateway bugs on day one. They are minified JavaScript errors, full-page cache serving stale cart data, or a security plugin blocking REST requests.

Take a backup before switching themes or disabling security plugins on a live shop. Test payment flows with a gateway sandbox or small real charge after each change.

Confirm what customers actually see

Ask for a screenshot or screen recording. Checkout can fail at three different points: loading the page, updating shipping or totals, or placing the order. Each points to a different layer.

Test as a guest and as a logged-in customer. If only guests fail, look at cookie consent banners or caching that treats anonymous users differently.

  • Blank checkout page: PHP fatal or theme template conflict.
  • Spinner on Place Order: JavaScript error or blocked AJAX.
  • Order created but no payment: gateway configuration issue.

Enable WooCommerce logging and WP debug

Turn on logging under WooCommerce → Settings → Advanced → Logs. Choose a log source such as fatal-errors or a payment gateway, then reproduce the failure and download the log file.

php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Exclude checkout from cache and CDN

Never cache cart, checkout, or my-account pages. LiteSpeed, WP Rocket, W3 Total Cache, and Cloudflare APO all need explicit exclusions. Cached checkout often shows wrong totals or stale nonces that break Place Order.

  1. Add /cart/, /checkout/, and /my-account/ to do-not-cache rules.
  2. Purge all cache after changing exclusions.
  3. Disable Rocket Loader or similar JavaScript optimisers on checkout as a test.

Check SSL, cookies, and mixed content

Payment fields require HTTPS. If siteurl and home still use http, or assets load over http, browsers block card fields. Confirm both WordPress URLs use https and that your certificate covers www and apex.

Cookie paths must match your domain. Staging copies with wrong URLs in the database break sessions when copied to production without search-replace.

Isolate plugin and theme conflicts

Deactivate checkout field editors, funnel builders, and custom checkout plugins one at a time. Switch to Storefront for thirty minutes. If checkout works, the active theme or a plugin template override is the cause.

Use a staging site or maintenance mode banner while testing. Do not leave Storefront live on a branded shop longer than needed.

When to stop DIY and hire help

Hire a WooCommerce developer if checkout still fails with a default theme, if logs show core WooCommerce fatals, or if you run a high-volume shop and cannot afford trial-and-error during trading hours. BugShield assigns a BugShield developer with Vault access for checkout emergencies.

FAQs

Why does WooCommerce checkout keep spinning?

Usually a JavaScript error or blocked AJAX request. Open browser DevTools on checkout, click Place Order, and read the Console and Network tabs for red errors.

Can caching break WooCommerce checkout?

Yes. Full-page cache on checkout is a common cause of invalid nonces and stale cart sessions. Exclude checkout URLs from every cache layer including CDN.

Should I reinstall WooCommerce to fix checkout?

Reinstalling rarely helps. Deactivating WooCommerce does not remove database tables. Focus on logs, conflicts, and gateway settings first.

Does Cloudflare break checkout?

Aggressive bot fight, Rocket Loader, or caching HTML on checkout can break it. Create a page rule or cache rule to bypass checkout and cart.

Rather someone else fixed it?

Request a fix at a confirmed price. Named UK developer, secure Vault, direct chat.

Request a Fix