WooCommercePractical help
In WooCommerce, products, shipping, payments and orders all affect one another. When something goes wrong, it helps to know what to check first. These answers draw on the official WooCommerce documentation. Check changes and trial orders on a separate test copy with your own test data. To test payments, set up your payment provider’s documented test mode.
Find your questionWooCommerce · Products · Orders
- WordPress
- Cart
- Order
What is going wrong?
Common issues and how to check them.
Choose your question and follow the steps.
Why does my checkout page not show a checkout form?
The problem
Your checkout page is blank, shows ordinary page content or takes you to the wrong place.
What could be causing it
WooCommerce needs its core shop pages to be assigned correctly. The checkout page must also contain the correct checkout content.
One thing to check
Cart, Checkout and My Account need separate pages. Assigning one page to several roles can disrupt redirects and payments.
Checkout
What to do
- Under WooCommerce → Settings → Advanced, check which pages are assigned to Cart, Checkout and My Account.
- In the editor, check for the Checkout block or the classic checkout if you use it intentionally. Ordinary page text cannot serve as the form.
- Correct the assignment or content on a test copy first, then open checkout from the cart.
How to check the result
Open the cart on your test copy and continue to checkout without placing an order.
Why is an order still open after a payment attempt?
The problem
After a payment attempt, the order remains open or checkout shows an error.
What could be causing it
Pending payment means unpaid, while On hold means the order is awaiting confirmation. Depending on the payment method, this may be expected. A missing notification from the payment provider can also leave the order open.
One thing to check
On hold may be intentional for a bank transfer or a card authorisation without capture. Holding stock for longer cannot fix a missing payment notification.
Payments and order status
What to do
- Check the existing order, its exact status, order notes and any transaction reference.
- Compare it with the payment provider. Did the payment fail, was it authorised only or was it captured? Do not try to pay again until you know the outcome.
- Test technical fixes on a test copy with test credentials and the payment provider’s documented test mode.
How to check the result
The payment and order statuses should agree. Treat an authorisation or outstanding confirmation according to the provider’s actual status rather than what checkout displays.
Why is there no delivery method for an address?
The problem
Checkout says shipping is unavailable for a delivery address that should be eligible.
What could be causing it
WooCommerce uses the first matching shipping zone. If it has no active shipping methods, rules in a later zone will not apply.
One thing to check
Locations not covered by your other zones does not act as a fallback when a matching zone has no shipping method. WooCommerce will not move on to the next zone in that case.
Shipping zones
What to do
- Under Settings → General, check the countries you ship to. Compare the country and postcode of your own test address with the configured zones.
- Read the zones from top to bottom. Put more specific regions before broader ones. Correct the order on a test copy first.
- Check that the first matching zone has an active shipping method, then check the shipping options with the same test address.
How to check the result
On a separate test copy, use your own test address and go as far as shipping selection without placing an order.
Why is my flat-rate shipping charge different from the one I set?
The problem
The shipping cost is higher than, or otherwise differs from, the base flat rate you entered.
What could be causing it
Shipping classes, additional class costs and the choice between charging per item or per class can affect the total.
One thing to check
A variation can have its own shipping class. Check the exact combination even when the parent product shows the correct class.
Shipping costs
What to do
- Open the flat rate in the shipping zone that actually applies. Check the base cost and additional class costs.
- Compare the shipping class of the ordered product or selected variation with the configured charges.
- On the test copy, check the calculation method and any quantity formulas with one item, then two and, where relevant, mixed classes.
How to check the result
Check that the total follows from the base charge, class charges and calculation method. Stop before placing an order.
Why is WooCommerce rejecting my coupon?
The problem
The coupon exists, but the cart rejects it or discounts different items from the ones you expected.
What could be causing it
Coupons have their own conditions for products, order value, email addresses, expiry and usage. There may also be restrictions on combining coupons.
One thing to check
A coupon is already invalid on its entered expiry date. If it needs to work all day on Friday, do not assume Friday will still be valid when it is set as the expiry date.
Coupons
What to do
- Read the exact rejection message. Check the code under Marketing → Coupons and verify that coupons are enabled under Settings → General.
- Compare products, exclusions for sale items, minimum and maximum spend and permitted billing email addresses with the test cart.
- Check expiry, usage limits and the Individual use only setting. Test changes exclusively on the test copy.
How to check the result
An eligible cart should receive the expected discount and an excluded cart should be rejected. Also test a date before expiry without placing an order.
Why is a product variation unavailable to buy?
The problem
The product shows size and colour options, but one combination is missing or cannot be added to the cart.
What could be causing it
Attributes alone do not create purchasable variations. Each enabled combination needs its own regular price.
One thing to check
Changing attributes can leave existing variations out of sync. Check the combinations and prices before making the new selection available.
Product variations
What to do
- Check the product type, attributes and combinations that have actually been created.
- Open the missing variation. Check that it is enabled and has a regular price, complete attribute values and the correct stock.
- Fill in any missing data on the test copy. Save the variation changes, then save the product.
How to check the result
Select the combination on the test product page and check the cart without placing an order.
Why is the stock level shown incorrect?
The problem
The shop shows an unexpected stock status or tracks the available quantity differently from what you expect.
What could be causing it
WooCommerce tracks quantities only when stock management is enabled. Unpaid orders that reserve stock can also affect the available quantity.
One thing to check
Hold stock applies to Pending payment only. It does not apply to On hold. Leaving the time field blank disables this automatic release and does not extend the payment provider’s payment window.
Stock
What to do
- Under Settings → Products → Inventory, check the global stock management setting.
- Compare the quantity and stock status of the product and the exact variation ordered. They can be managed separately.
- Compare open orders with the Hold stock setting. Test fixes with a test product on the test copy.
How to check the result
Check that the quantity and availability can be explained by product or variation stock and open orders. Leave real stock untouched during diagnosis.
Why are order emails not arriving?
The problem
An order exists, but the expected message has not reached you or the buyer.
What could be causing it
The trigger, a disabled email or delivery could be responsible. An email marked as sent has not necessarily reached the inbox.
One thing to check
If a paid order stays in Pending payment, the payment status may be preventing the email. Check the payment provider’s notification before changing email settings.
Order emails
What to do
- First check the order status and relevant notification under WooCommerce → Settings → Emails. If the trigger is missing, investigate the order flow first.
- If available, check the transactional-emails source under WooCommerce → Status → Logs. Look for sent, failed, disabled or skipped.
- If the log says sent but nothing arrived, check the sender domain, recipient and spam folder. Test delivery on the test copy using your own test mailbox.
How to check the result
Sent in the log confirms handover to the mail system. Confirm receipt separately and keep a note of the notification type and result.
Why do buyers have to create an account at checkout?
The problem
You want to allow guest orders, but checkout asks buyers to sign in or register.
What could be causing it
Displaying a sign-in option does not mean an account is mandatory. Guest checkout, sign-in and account creation are separate settings. Subscriptions may require an account even when guest checkout is enabled.
One thing to check
A subscription can require an account even when guest orders are generally allowed. Test with an ordinary one-off product to separate product requirements from the general settings.
Guest checkout and customer accounts
What to do
- Under Settings → Accounts & Privacy, check whether customers can place orders without an account.
- Compare the sign-in and account creation settings. Can buyers skip sign-in, or does it actually prevent them from continuing?
- On the test copy, sign out and test with a standard one-off product. Then compare it with the affected product type.
How to check the result
The permitted guest flow should work as far as the order review, without payment or a real order.
Why are my product images blurry or cropped?
The problem
Your product images look different on the shop listing and the product page, or appear blurry.
What could be causing it
WooCommerce uses different image sizes. The original file, thumbnail crop and theme settings affect how each version appears.
One thing to check
If only one colour is blurry, check the image assigned to that variation. Variations can use a different image from the parent product.
Product images
What to do
- Compare the original file with the main image and thumbnail that actually appear.
- Check available product image settings for width and cropping or inspect the template used for the product gallery.
- On a separate test copy, test a suitable image of adequate size without replacing the entire gallery.
How to check the result
Check the shop listing and product page on desktop and mobile. Important product details should remain clear.
Why is my product missing from the shop even though its direct link works?
The problem
The product page opens directly, but the product does not appear in the shop, in its category or in search.
What could be causing it
Publication and catalogue visibility are separate settings. A published product can be hidden from listings. Stock filters, the shop template and extensions can also affect what appears.
One thing to check
Hidden removes the product from the catalogue and search. The direct link can still work, so this is unsuitable for controlling access to confidential content.
WooCommerce products and catalogue visibility
What to do
- While signed out, compare the product link, shop, category and shop search. In the dashboard, go to Products → All Products → your product and read its publication status and catalogue visibility.
- Check the options: shop and search, shop only, search only or hidden. Check its categories and whether WooCommerce → Settings → Products → Inventory hides out-of-stock products.
- Test your intended correction on a separate test copy first. If the settings are already correct, isolate the shop template, filters and extensions there before recreating the product.
How to check the result
The product should appear in the intended places. Check the shop, category and search individually. A working direct link confirms only the product page.
Written by GLEB IT · Gleb Diesen. Sources checked 11–14 October 2026. Menus and features may vary by version, theme, plan or extension.
Still stuck?
Let’s take a look.
Tell me briefly what is not working, which system you use and what you have already checked. I will see whether and how I can help.
Discuss the issue