WooCommerce checkout
WooCommerce Checkout Is Not Working
You can diagnose most checkout failures without placing a real paid order. Look at the browser console, the checkout XHR, cache headers, and the gateway sandbox.
Direct answer
Checkout fails in layers: the page does not load, the Place order button does nothing, the request returns 403/500, or the gateway declines. Full-page cache on /cart/ or /checkout/ is a frequent silent cause. A cached nonce or a cached empty cart looks like “it works for me in a private window yesterday.”
How we diagnose without placing an order
- Open checkout as a guest in a private window. Do not complete a paid order on production. Use sandbox keys or a $0 coupon on staging.
- DevTools → Network. Click Place order. Inspect the
admin-ajax.phpor Store API/wc/store/v1/checkoutresponse. A 403 from ModSecurity or a Cloudflare challenge is not a “Woo bug.” - Response headers: if
x-cache, LiteSpeed, orcf-cache-status: HITappears on cart or checkout, exclude those URLs from the page cache. The free health checker flags public cache clues on shopper paths when they are visible. - Console errors: a theme or optimization plugin often minifies checkout JS and breaks the payment iframe.
- If the order is created but payment never captures, that is gateway/webhook work, not a missing SSL certificate on the homepage.
What not to do
- Do not place real customer-funded orders to “see if it works.”
- Do not disable all security plugins on a live store as the first step.
- Do not minify checkout scripts site-wide to chase a Lighthouse score.
WooCommerce Checkout Rescue from $249. Final quote after diagnosis.
