Skip to content
WooRescueHQ

Specialist service

WooCommerce checkout troubleshooting

A checkout that keeps loading, a Place Order button that does nothing, an error on submit, or a checkout that works for some customers and not others. We follow the checkout request through the browser, WordPress, WooCommerce and the gateway until the failing layer is isolated.

What we check

  • Which checkout is in use: the classic shortcode (?wc-ajax=checkout) or the Checkout block (Store API)
  • The browser console and the checkout request in the Network panel
  • PHP and WooCommerce fatal-errors logs at the moment of failure
  • Hooks and custom code on the checkout path: fees, fields, validation, shipping
  • Page caching, script optimisation and security rules applied to checkout
  • The gateway's response and what happens after it

What you receive

  • The failing layer and the exact cause, with evidence
  • The fix, tested with guest and logged-in orders on staging
  • Notes on what to check after future updates

The first question: where does the failure start?

Checkout has three phases, and finding which one fails narrows the cause from dozens of possibilities to a few:

  1. Before the request — nothing is sent when the customer clicks Place Order. The cause is in the browser: a JavaScript error, a script blocked by an optimiser or consent tool, a missing payment field.
  2. During the request — the request is sent but returns an error, a timeout or invalid output. The cause is on the server: a PHP fatal error in a hook, a validation failure, a security rule, an exhausted PHP worker.
  3. After the gateway — the order is created but payment confirmation or post-payment processing fails. The cause is in the payment handoff.

Classic checkout or Checkout block?

The Checkout block became the default checkout for new WooCommerce stores, while many existing stores still use the classic [woocommerce_checkout] shortcode. They use different endpoints, different JavaScript and different extension points. Extensions that only support one of them, and security rules that restrict the REST API, are a frequent cause of checkout failures after a migration or update.

FAQ

Frequently asked questions

Why does checkout work when I'm logged in but not for guests?

Common causes are page caching serving a stale checkout (with expired nonces) to visitors without a session, guest checkout or account settings, and plugins that only run for logged-out users. The guest checkout request in the Network panel shows which.

Does it matter whether we use the Checkout block?

Yes. The classic checkout posts to ?wc-ajax=checkout; the Checkout block uses the Store API under /wp-json/wc/store/. Security plugins, REST API restrictions and extensions that only support one of the two cause failures that look identical to customers.

Can a theme break checkout?

Yes — through outdated template overrides, JavaScript conflicts or removed hooks. The theme's overrides are listed under WooCommerce → Status, flagged when they are out of date.

$ describe the problem

Have a WooCommerce problem?Request a diagnosis.

Tell us what is failing, what changed recently and the business impact. We review every request and recommend the appropriate next step.

Request a diagnosis See services and prices

Never send passwords, API keys or card data through the form.

Diagnosis from€299

Request a diagnosis