Fixing WooCommerce checkout not working
How to troubleshoot and fix WooCommerce checkout problems including payment failures, blank checkout pages, shipping calculation errors, coupon issues and JavaScript conflicts.
Fixing WooCommerce checkout not working
A broken checkout means lost sales. Whether customers are seeing a payment error, a blank page, a spinning loader that never completes or an error message when applying a coupon, something in the checkout flow is failing.
WooCommerce checkout relies on several systems working together: your payment gateway, shipping calculations, tax settings, cart logic, JavaScript and the theme's template structure. A problem in any one of these can prevent customers from completing an order, and the resulting error messages are often vague or missing entirely. A customer might simply tell you "checkout doesn't work" without much detail.
The approach below works through the most common causes of WooCommerce checkout errors systematically, starting with the simplest checks.
Check the basics first
Before investigating code or configuration, rule out the simple things.
Make sure your checkout page is assigned correctly under WooCommerce → Settings → Advanced → Page setup. WooCommerce needs specific pages assigned for the cart, checkout, my account and terms and conditions. If the checkout page has been accidentally deleted, moved to draft or reassigned to a different page, the checkout won't load at all.
Check that your payment gateway is enabled and properly configured under WooCommerce → Settings → Payments. If no payment methods are active, customers will see an empty checkout or an error message. If you're using a gateway that connects to an external service, verify that the API keys or credentials are current and haven't expired.
Try placing a test order yourself, ideally using your gateway's test or sandbox mode if it offers one. This lets you see the exact error rather than relying on customer reports.
Fix blank checkout pages
A completely blank checkout page (or one that loads the header and footer but no checkout form) is usually caused by a JavaScript error, a missing checkout page assignment or a theme conflict.
Open your browser's developer tools (usually F12 or right-click and select "Inspect") and check the Console tab for error messages highlighted in red. WooCommerce relies heavily on JavaScript to render the checkout form and handle interactions like updating totals, validating fields and submitting payment. A single JavaScript error from any plugin or theme can prevent all of this from running, which stops the entire form from appearing.
If you see JavaScript errors, try deactivating plugins one at a time to identify which one is causing the conflict. Start with any plugins that add functionality to the checkout page, such as custom field plugins, analytics scripts or marketing tools.
To test whether your theme is the cause, temporarily switch to a default WordPress theme (such as Twenty Twenty-Four). WooCommerce checkout templates are provided by your theme, and a theme with a poorly implemented or outdated checkout template can break the page entirely.
Resolve payment gateway errors
If the checkout form loads but fails at the payment stage, the problem is usually in the payment gateway configuration.
Common causes include expired or incorrect API keys, the gateway being set to live mode with test credentials (or vice versa), the gateway not supporting the currency your store is configured to use, and SSL certificate issues. Most payment gateways require your site to use HTTPS for live transactions and will refuse to process payments over an unsecured connection.
Check your gateway's settings under WooCommerce → Settings → Payments and verify all credentials match what your payment provider's dashboard shows. If your gateway has a debug or logging option, enable it temporarily to capture the exact error being returned. Gateway logs are usually accessible under WooCommerce → Status → Logs and often contain much more detail than the error message customers see at checkout.
If you recently updated your payment gateway plugin, check whether the update introduced changes that require you to reconfigure your settings. The plugin's changelog or support forum will usually mention any required actions after an update.
Fix shipping calculation problems
If customers can't proceed past the checkout because shipping isn't calculating correctly, or because no shipping options are appearing, check your shipping zone configuration under WooCommerce → Settings → Shipping.
WooCommerce uses shipping zones to determine which shipping methods are available for a given customer address. Make sure you have zones configured for the regions you sell to, and that each zone has at least one shipping method enabled. If a customer's address doesn't fall within any of your configured shipping zones, WooCommerce won't offer any shipping options and the checkout will stall.
If you're using calculated shipping (based on weight, dimensions or real-time rates from a carrier), make sure your products have the correct weight and dimension values entered on their product pages. Missing product data can cause the calculation to fail silently, with no shipping options appearing at checkout.
Also check whether your shipping configuration requires a full address before calculating rates. Some setups won't display shipping options until the customer enters their postcode or selects a country, which can look like a broken checkout if the customer doesn't realise they need to fill in more fields first.
Fix coupon and discount errors
If coupons aren't applying or are producing error messages at checkout, review the coupon's settings under Marketing → Coupons (or WooCommerce → Coupons in older versions of WooCommerce).
Check the usage restrictions: minimum and maximum spend amounts, product or category restrictions, email restrictions and whether the coupon is limited to a certain number of uses. Also check the expiry date. A coupon that has expired or reached its usage limit will be rejected at checkout, and the error message WooCommerce displays isn't always clear about the specific reason.
If customers are seeing "this coupon is not valid" without an obvious explanation, test the coupon yourself with a cart that matches the conditions your customers are likely using. The restrictions may be too narrow for the way customers are actually trying to apply the coupon.
Check for plugin conflicts
Checkout problems are frequently caused by conflicts between WooCommerce and other plugins, particularly plugins that modify the checkout page, add custom fields, inject JavaScript or handle caching.
Caching plugins deserve special attention. If your caching plugin is caching the checkout page, customers may see stale data, expired security tokens or session errors that prevent the checkout from completing. Most caching plugins have an option to exclude specific pages from being cached. Make sure your cart, checkout and my account pages are all excluded.
To test for plugin conflicts, deactivate all plugins except WooCommerce and test the checkout. If it works, reactivate plugins one at a time, testing the checkout after each one. This is time-consuming but it's the most reliable way to identify the conflict.
Check your theme's checkout template
WooCommerce uses template files to control the layout and structure of the checkout page. Your theme can override these templates to customise the checkout's appearance, but if the overrides were written for an older version of WooCommerce, they may be missing fields, functionality or structural changes that newer versions of WooCommerce expect.
Check whether your theme overrides any WooCommerce templates by looking in your theme's folder for a woocommerce directory. If it exists, it contains template overrides. You can check whether these overrides are outdated under WooCommerce → Status → System Status, which lists all overridden templates and flags any that are out of date compared to the current WooCommerce version.
If outdated templates are flagged, you'll either need to update them manually to match the current WooCommerce version or contact the theme developer for an updated version of the theme. Switching to a default WordPress theme temporarily will confirm whether the theme's templates are the cause of the checkout problem.
Review WooCommerce status and logs
WooCommerce has a built-in status dashboard under WooCommerce → Status that can flag configuration issues, missing requirements and template problems. Check this page for any warnings or errors highlighted in red.
The logs section (WooCommerce → Status → Logs) records errors from payment gateways and other WooCommerce components. If something is failing during checkout, there's often a detailed error message in the logs that doesn't appear on the customer-facing checkout page. These log entries can save you significant troubleshooting time by pointing directly to the source of the problem.
Need help fixing your checkout?
If your checkout is still not working after these steps, or if you're losing sales and need it resolved quickly, my emergency WordPress support service covers WooCommerce checkout issues, payment gateway configuration and plugin conflict resolution.