Troubleshooting order problems
How to diagnose and fix common WooCommerce order issues — missing orders, stuck statuses, wrong emails, and more.
- Difficulty
- Beginner
Something's gone wrong with an order. Don't panic — most order problems have straightforward solutions. This guide covers the most common issues and walks you through fixing them.
Quick summary
Most order problems fall into three categories: orders not appearing in the dashboard, orders stuck in the wrong status, or email notifications not sending. For each, start by checking the order status, then the payment gateway, then the WooCommerce status logs. Contact us if you're stuck.
Problem: A customer paid but no order appeared
This is one of the most alarming situations. Here's what to check:
Check your payment gateway dashboard first. Log in to Stripe or PayPal and look for the payment. If it's there, the money was collected.
Search WooCommerce Orders for "Failed" or "Pending" orders. Go to WooCommerce → Orders and filter by "Failed" status. The order may exist but with the wrong status.
Check the customer's email. Ask them for their order confirmation email. If they received one, the order exists — it may just be hard to find (try searching by their email).
Read the order notes. If you do find the order, its notes often carry the gateway's own message — a transaction ID, a decline reason, or a timeout. No payment notes at all is itself a clue: it usually means the gateway never finished talking to your site.
Look at WooCommerce logs. Go to WooCommerce → Status → Logs and look for entries from the payment gateway, on the day the order was placed. Logs only exist if logging was enabled in the gateway's settings, and only for transactions since then.
If payment was taken and no order exists: Contact us. We'll check the gateway's webhook or callback settings — this is usually the cause.
If payment was taken but no order exists, do not process another payment
Contact the customer to let them know you're investigating. Do not ask them to pay again until you've confirmed no duplicate charge exists.
Problem: Order is stuck in "Pending payment"
"Pending payment" means WooCommerce received the order but payment hasn't been confirmed. This can happen when:
- The customer abandoned checkout partway through.
- The payment gateway notification (webhook or callback) didn't reach your site.
- The customer paid by bank transfer or cheque, which you have to verify by hand. Those methods usually leave the order On hold rather than Pending payment.
- Your gateway is set to authorise only, not authorise and capture — so the money is held but never taken. The order notes will say the payment was authorised but not captured.
What to do:
- Check your payment gateway to see if the payment was actually taken. If the customer isn't sure whether they were charged, confirm that before letting them retry, so you don't end up with a duplicate charge.
- If payment was received, manually update the order status to "Processing."
- If payment was not received, the order is genuinely pending. You can contact the customer, or leave it — with the Hold stock (minutes) setting enabled, WooCommerce cancels eligible pending checkout orders once that limit passes and releases the stock they were holding.
Problem: Customer isn't receiving order emails
Check WooCommerce → Settings → Emails. Confirm the relevant email (e.g., "Processing order") is enabled.
Check that the email address on the order is correct. Open the order and verify the billing email.
Ask the customer to check their spam folder. WooCommerce emails often land in spam.
Check the email log. WooCommerce records every transactional email attempt. Go to WooCommerce → Status → Logs and open the log source named transactional-emails. It tells you whether each email was sent, failed, disabled or skipped — which separates "WooCommerce never tried" from "WooCommerce tried and it didn't arrive."
Send a test email. Go to WooCommerce → Settings → Emails, find Email preview, and use Send a test email. If the test arrives, the issue may be specific to that customer's email provider.
Check your site's email configuration. WooCommerce sends mail through WordPress's built-in mail function, which many hosts handle badly. Make sure the "From" address on the Emails screen is on your own domain, and consider a dedicated SMTP provider — WooCommerce recommends this itself. A plugin like WP Mail SMTP connects one up. Contact us if needed.
Unpaid orders don't trigger an email
If an order is still in Pending payment status, WooCommerce sends nothing. That's expected, not a fault.
Problem: Orders showing wrong or confusing amounts
If the order total doesn't look right:
- Check whether taxes were included or excluded in the displayed price.
- Check if a coupon was applied (the coupon deduction is shown in the order).
- Verify the shipping cost was calculated correctly.
- Look at the "Order notes" section for any adjustments made after the fact.
Problem: Stock levels aren't updating after orders
Stock tracking has to be switched on in two places. If either one is off, WooCommerce won't reduce stock when an order comes in.
Check the store-wide setting. Go to WooCommerce → Settings → Products → Inventory and confirm Enable stock management is ticked. WooCommerce also recommends leaving Hold stock (minutes) set — 60 is the default.
Check the product. Go to Products, open the product, scroll to the Product data section, and on the Inventory tab confirm Track stock quantity for this product is ticked. Then check the Quantity field. This box only appears when the store-wide setting above is on.
For variable products, check the right level. You can track stock at the product level, the variation level, or a mixture. A variation with its own Manage stock? box ticked keeps its own count; a variation without it pulls from the product-level stock, if that's enabled.
Check the order status. Stock is reduced for orders in Processing and On hold. Draft and Pending payment orders only reserve stock, for as long as the Hold stock setting allows. When an order moves to Failed or Cancelled, stock already reduced goes back to inventory, and the order notes record it.
Common questions
A customer says they were charged twice. What do I do?
Log in to your payment gateway (Stripe/PayPal) and check the transaction history for that customer's email or card. If there are two charges, issue a refund for the duplicate immediately. Then check WooCommerce Orders to see if two orders were created or just one.
Before assuming it's a bug, WooCommerce suggests ruling out the ordinary explanations: ask the customer whether they meant to order twice, compare the order numbers (different numbers can mean two genuine purchases), and compare the timestamps and payment notes on each. Double-clicking Place Order, or refreshing checkout while it's processing, can produce two attempts — and a slow server makes that more likely. Contact us to investigate how the duplicate occurred.
Can I manually create an order for a customer?
Yes. Go to WooCommerce → Orders → Add order. You can add products, set prices, enter customer details, apply coupons and fees, and set a status — choose Pending payment if the customer still needs to pay. Then use Order actions → Send order details to customer to email them a link to the payment page. This is useful for phone orders, wholesale customers, or correcting a broken order.
Two things to know: WooCommerce accepts only one payment per order, and if you assign the order to a registered customer account, only that customer can pay for it after logging in. Anyone else opening the link — including you — sees "This order cannot be paid for."
The order confirmation email went to the wrong address. Can I resend it?
Yes, for the order details. Fix the billing email on the order first, then open the Order actions dropdown on the order screen and choose Send order details to customer. WooCommerce emails the order details plus a payment link to the address on the order.
The Order actions dropdown has only two email actions: Send order details to customer and Resend new order notification — and the second one goes to your store's own recipients, not to the customer. There's no built-in action for re-sending a specific customer status email, such as the Processing order or Completed order notification. Ask us if you need proper resend controls.
Why do some orders show as 'Processing' even after I've marked them 'Complete'?
Worth knowing first: orders never move from Processing to Completed on their own — you mark them Completed after you ship. The exception is an order containing only virtual and downloadable products. So if you're seeing orders that look stuck rather than reverting, that's normal.
If an order genuinely goes back to Processing after you completed it, that points at something else writing to the order — often a fulfilment or sync integration — or at a cached page showing you the old status. Clear your site cache and check which integrations are active. Contact us if the problem persists.
Related guides
- Understanding orders
- Order statuses explained
- Troubleshooting payment problems
- Store emails to customers explained
Need a hand?
Learn more
Last updated