WooCommerce Orders Stuck on Pending Payment? Causes & Fix
If your WooCommerce orders sit on Pending payment and never move to Processing, the store almost always took the customer to checkout but never heard back that the payment cleared. Here's how to find the exact reason and fix it.
Last updated: 16 Jul 2026 · ~6 min read
The most common cause is a payment gateway that never sent the confirmation back to WooCommerce — a broken Stripe webhook or PayPal IPN. Open your gateway's webhook log, look for a failed delivery, and repair the endpoint. Note that bank transfer and cheque orders land on On hold, not Pending — so if yours are on Pending, that's not the manual-payment flow, it's an unfinished checkout.
What "pending payment" actually means
Pending payment means the order was created but WooCommerce never got confirmation that payment cleared. Until the gateway says the money arrived, the order won't move to Processing — so a stuck order is almost always a communication problem, not a lost sale.
The most common causes (most likely first)
- The gateway webhook / IPN never reached your storeStripe webhook or PayPal IPN failed — the payment cleared on their side but WooCommerce was never notified. By far the #1 cause.
- The customer abandoned a redirect gatewayThey were sent to PayPal/an off-site page and closed it before returning. Order stays pending, no payment taken.
- You're reading On hold as Pending (bank transfer / cheque)BACS and cheque orders go to On hold — "Awaiting BACS payment" — not Pending. That one is working as designed. A BACS order actually sitting on Pending means checkout was never completed.
- A security plugin or firewall is blocking the callback URLA WAF or security plugin blocks the gateway's IPs, so the confirmation request never gets through.
- Test-mode keys on a live store (or key-mode mismatch)The gateway is in test mode, or the webhook signing secret doesn't match the store's live/test mode.
Where to look first
- Open your gateway dashboard (Stripe, PayPal…) and find the order — did the payment actually succeed?
- Payment succeeded but the order is still pending? Check the webhook / IPN log for a failed delivery — that's your culprit (cause 1, 4 or 5).
- No successful charge? The customer most likely abandoned checkout (cause 2) — nothing to fix.
- Bank transfer or cheque order? Check the status again — those land on On hold, and that's normal; confirm the payment, then mark it Processing. If it really is on Pending, treat it as cause 2, not a manual payment.
Not sure which cause is yours?
That's the slow part — checking each gateway, log and setting by hand. DiagnosticIQ's free dashboard checks all of these in one screen, and the AI names the exact cause — down to "Stripe webhook returning 401 in live mode" — in about 30 seconds. And it keeps watching after the fix — so if this breaks again, you hear it from DiagnosticIQ, not from a customer.
Get the free plugin →Made by Prima Digital — the team behind this guide. Free forever; no card to install.
How to know you fixed it
Place a test order — it should move Pending payment → Processing on its own, with a fresh 200 in the gateway's webhook log.
Frequently asked
Was the customer charged?
Only if the gateway shows a successful charge — if it does, mark the order complete after confirming there.
Will I lose the order?
Not immediately — WooCommerce holds pending orders until the hold-stock window, so fix the webhook and recover them.
Do pending orders auto-cancel?
Yes, after the hold-stock limit under WooCommerce → Settings → Products → Inventory.