Guides Checkout diagnostics

Field guide 04

WooCommerce Checkout Not Working? A Read-Only Diagnostic Checklist

Use a structured, low-risk checklist to narrow WooCommerce cart and checkout problems before changing plugins, templates, gateways, or production data.

1. Define the checkout symptom before changing anything

“Checkout is not working” can describe several different failures: a blank page, an endless loading indicator, missing payment methods, missing shipping options, a redirect loop, validation that never completes, or a payment attempt that fails after the customer leaves the site.

Write down the exact URL, device, customer location, cart contents, payment method, time, and visible message. Confirm whether the problem affects cart, checkout rendering, order submission, the gateway redirect, or the return to WooCommerce. These are different layers and should not be diagnosed as one problem.

Protect production: Make a current backup and avoid placing repeated live orders. Use staging and gateway test modes whenever the investigation could create orders, reserve stock, send customer email, or contact a payment provider.

2. Check the WooCommerce baseline

  • Versions: Confirm WordPress, WooCommerce, PHP, the active theme, and checkout-related extensions are supported and intentionally updated.
  • HTTPS: Cart and checkout should use HTTPS without mixed-content warnings or an unexpected change of hostname.
  • Permalinks: Confirm the site uses the intended permalink structure and that cart and checkout URLs resolve without a redirect loop.
  • Store visibility: Check that WooCommerce is in the intended live or coming-soon state for the person performing the test.
  • System status: Review WooCommerce → Status for highlighted errors, template overrides, log entries, and environment warnings relevant to the symptom.

3. Verify the assigned cart and checkout pages

Open WooCommerce → Settings → Advanced and confirm that Cart and Checkout point to separate, published pages. WooCommerce requires these functional areas to be configured, and assigning the same page to multiple roles can cause incorrect redirects or gateway behavior.

Edit each assigned page and identify whether it contains the Cart or Checkout block, the legacy shortcode, or an intentional integration supplied by another extension. Then view the public URLs in a private browser window.

4. Separate gateway and shipping configuration from rendering

A checkout page can render correctly while payment or shipping choices remain unavailable. Test with a real purchasable product and an address that should qualify for the expected shipping zone.

  • Payment: Confirm at least one intended gateway is enabled and that its currency, country, HTTPS, account, and checkout-type requirements are satisfied.
  • Shipping: Confirm the test address matches an enabled zone and that the cart contains a product requiring shipping when that is the expected path.
  • Catalog: Confirm products are published, purchasable, and available under the current stock rules.
  • Customer context: Test logged out and, when relevant, with the customer role or account state that reported the issue.

Do not interpret a list of enabled gateway IDs as proof that a gateway can authorize payment. Provider credentials, hosted fields, external redirects, fraud controls, and account status require their own checks.

5. Inspect the browser and request layer

Open the browser developer console and reload checkout. Red JavaScript errors, blocked resources, failed AJAX or Store API requests, mixed content, and content-security restrictions can explain a page that appears incomplete or remains stuck.

Also review caching and optimization rules. Cart, checkout, account, and session-dependent requests should not be served as ordinary static pages. If the failure began after enabling script delay, combination, minification, a CDN rule, or an aggressive cache, reproduce it on staging with that layer safely disabled.

6. Review WP-Cron and scheduled actions

Open WooCommerce → Status → Scheduled Actions and review failed, overdue, and repeatedly pending work. Scheduled actions handle background processes; a warning does not automatically explain a page-rendering problem, but a blocked queue can affect related emails, renewals, data processing, and extension workflows.

If DISABLE_WP_CRON is enabled, confirm that a real server scheduler requests or runs WordPress cron on an intentional schedule. Do not enable both approaches blindly or assume a page visit will always execute overdue work immediately.

7. Perform a controlled conflict test

When configuration looks correct but the symptom remains, create a staging copy and test with a default compatible theme and only the minimum plugins needed for the failing path. Re-enable extensions in small groups until the failure returns.

Keep the test controlled. Record versions, settings, the test product, the address, and the gateway mode. Do not deactivate production payment, security, translation, subscription, or fulfillment extensions merely to see what happens.

Use Checkout Diagnostics as the read-only first pass

Cobalt Checkout Diagnostics for WooCommerce checks the local configuration behind cart and checkout, including assigned pages, page type, HTTPS, permalinks, catalog availability, gateway IDs, shipping, order storage, WP-Cron, Action Scheduler, and safe render probes.

  1. Run checks before changing configuration.
  2. Review grouped warnings and their evidence.
  3. Correct one confirmed issue at a time.
  4. Run the diagnostics again and compare the snapshot.
  5. Finish with a controlled customer-journey test.
The plugin does not submit checkout, charge a gateway, create an order, or prove that an external customer can complete payment.

Checkout diagnostic checklist

  • The exact symptom, URL, device, cart, address, and time are recorded.
  • A current backup or safe staging environment is available.
  • WordPress, PHP, WooCommerce, the theme, and relevant extensions are supported.
  • Cart and Checkout are separate, published, correctly assigned pages.
  • The page contains the intended block or classic shortcode.
  • HTTPS, permalinks, and redirects behave consistently.
  • At least one valid test product, gateway, and shipping path exists.
  • Browser errors, failed requests, caching, and optimization have been reviewed.
  • Scheduled Actions and WP-Cron warnings have been assessed.
  • A controlled end-to-end test remains part of the final verification.

Run the free local diagnostics →

Sources and further reading