An order stuck in the wrong status usually means the site missed a signal — most often the payment confirmation. Sometimes the payment genuinely has not cleared. The two look identical from the admin and have opposite responses: one needs a technical fix, the other needs patience or a chase. Establishing which comes first.
Before you buy, one quick look
Read-only, and it tells you which problem you have.
Take one stuck order and find the matching transaction in your gateway dashboard.
Payment succeeded at the gateway — the money is yours and the site did not hear about it. That is a webhook or status problem, and this fixes it.
No matching transaction, or it shows pending — the payment genuinely has not cleared. Nothing on the site can change that.
Order stuck in processing or pending
Orders sit in processing or pending and never move. We find whether payment cleared, why the status did not update, and get the queue moving again.
- Full backup taken before we start
- If we can’t fix it, you get your money back
- We never ask for your own password
This or something else?
| Payment cleared, order stuck pending | This fix covers it |
| Webhook log shows failures | PayPal / Stripe webhook repair |
| Orders stuck at processing forever | This fix covers it |
| No payment record at the gateway | The payment did not clear |
| Subscription renewals stuck | Subscription renewal failure diagnosis |
What you are seeing
- Orders sitting in pending, on-hold or processing indefinitely
- Customers asking why they have had no confirmation
- Payment visible at the gateway with no matching order status
- Orders that need manual completion every single time
- Stock held by orders that will never complete
Common causes
- Webhooks not reaching the site, so payment confirmation never arrives
- Scheduled tasks not running, so nothing processes the queue
- A status transition blocked by a plugin or custom rule
- Manual payment methods with no automatic completion, working as designed
- The order failing validation during a status change and silently stopping
What we do
- Take a full backup before touching anything
- Establish for a sample of orders whether payment actually cleared
- Trace where the status transition is stopping
- Check webhooks and scheduled tasks, which cause most of these
- Fix the mechanism and correct the affected orders
- Place a test order end to end and confirm it reaches the right status
What is included
- Orders progressing to the correct status automatically
- Existing stuck orders reviewed and corrected
- A note naming what was blocking the transition
- The pre-fix backup, kept for 30 days
Not included
- Deciding whether to fulfil an order where payment never cleared
- Chasing customers for payment on your behalf
- Reconciling months of historical orders — quoted separately
- Design changes or content work
Questions about this fix
Should I just mark them complete manually?
Not until you know payment cleared. Marking an unpaid order complete means shipping goods you were never paid for. Check the gateway first, and this fix does that check systematically.
What is the difference between pending and on-hold?
Pending means WooCommerce is waiting for payment. On-hold means payment is awaited but stock is reserved, typically for bank transfer. Orders stuck in either usually point at the same missing confirmation.
It only happens with one payment method.
That narrows it usefully — it is that method's integration rather than the site generally. Usually webhooks, since each gateway configures them separately and one can break while others work.
Can you fix the orders already stuck?
Recent ones, yes, once we have confirmed payment cleared. If there are hundreds going back months, the bulk reconciliation becomes its own job and we quote it rather than hide it in this fix.
Should I contact the customer while their order is stuck?
It's worth a brief message reassuring them their order is being looked at, since checkout may have looked like it failed on their end even though payment went through. We can tell you which orders genuinely need that once we've diagnosed the cause.
Related fixes
If this is the second time this year
A bad update breaking the site is a symptom of updates not being tested first. Care plans run every update on a staging clone before it reaches your live site, which is the actual fix for this happening again.
Your access, your rules
Create a separate admin account for us and delete it when we are done. For anything else, we get in touch and agree a method — never a form field on this site, never by reply to an email.
We back up first, always
Before anything is touched we take a full backup and keep it for 30 days. If a fix goes wrong, we put the site back exactly as it was.
If it is not what you bought
If the problem turns out smaller than what you ordered, we refund the difference. If it is bigger, we stop and send a quote before doing any extra work.
If we cannot fix it
You get back what we received. Diagnosis is on us — you only pay when the problem is actually solved. The payment processor takes its fee before the money reaches us, so we never hold it and it is not ours to return. That is true here as everywhere else.
If it comes back
Reply within seven days of delivery and we put it back on the bench at no cost. The fix is not finished until it holds.
What we are responsible for
If something goes wrong with a fix, our responsibility is limited to what you paid for it. We take a full backup first so mistakes can be undone, and we tell you before doing anything outside what you bought.