Is this your problem?
- The Place order button spins forever
- The checkout page is blank or missing fields
- It works on a laptop but not on a phone
- "There are no payment methods available"
- "No shipping options were found"
What usually causes it
How to tell: It breaks for some customers and not others, or after a while. A caching or speed plugin is installed.
How to tell: The browser console shows a red error when you press Place order.
How to tell: Test mode is on, keys are wrong, or the gateway does not support your currency or country.
How to tell: The message says no shipping options were found.
How to tell: It started after switching to the new checkout, or after installing an extension.
Before you touch anything
- Do all testing in a private window, logged out, the way a customer would.
How to fix it, step by step
-
1
Place a test order as a customer
Use a private window on a phone and a laptop. Write down exactly where it fails.
-
2
Read the browser console
Press F12, open Console, then press Place order. A red error names the script at fault, and usually the plugin it came from.
-
3
Read the WooCommerce logs
Go to WooCommerce, Status, Logs. Check fatal-errors and the log for your payment gateway.
-
4
Keep caching off the checkout
Exclude /cart/, /checkout/ and /my-account/ from every cache, and turn off script combining and delaying on those pages. Clear all caches after.
-
5
Test without other plugins, safely
The Health Check and Troubleshooting plugin switches plugins off for you only, so customers are not affected. Turn them back on one by one.
-
6
Try the classic checkout
If you use the Checkout block, create a test page with the classic shortcode. If that works, an extension does not yet support the block.
[woocommerce_checkout] -
7
Check gateways and shipping
In each gateway, check test mode, live keys and the webhook. In Shipping, make sure a zone covers every country you sell to.
Stop and get help if
- Customers are charged but no order appears in WooCommerce. That is a webhook problem and needs reconciling with the gateway.
- You see many small failed payments in a row. That is card testing and needs protecting now.
Stop it happening again
- Test a real order after every update.
- Keep checkout, cart and account pages out of all caches.
- Watch the gateway dashboard for failed webhooks.
Questions people ask
Why does checkout work for me and not for customers?
You are logged in, and caches often skip logged-in users. Test logged out.
Should I switch back to the classic checkout?
Only if an extension you need does not support the block yet. The block is where WooCommerce is heading.