Why Is My WooCommerce Subscription Stuck on Pending?
Why This Happens
Every subscription is created against a parent order, and the subscription only moves to "Active" once that parent order is marked paid. If the checkout payment stalls, fails silently, or uses a payment method that requires manual confirmation (bank transfer, cheque, or a gateway waiting on an asynchronous webhook), the order stays unpaid and the subscription stays pending indefinitely until something resolves that order.
Common Causes
- Offline payment method selected at checkout. Bank transfer (BACS) and cheque payments always start as pending until an admin manually marks the order paid — expected behavior, not a bug.
- Gateway callback/webhook never arrived. The customer completed payment on the gateway's own page, but the confirmation never reached WooCommerce to update the order — common with PayPal and any gateway relying on asynchronous IPN/webhook delivery.
- Checkout abandoned mid-payment. The customer started checkout, an order was created, but they never actually completed the payment step (closed the tab, card form errored silently, and so on).
- Payment gateway plugin conflict or misconfiguration preventing the success callback from updating the order status correctly even though the charge succeeded on the gateway's side.
- Fraud-screening plugin holding the order for manual review before it's allowed to proceed to a paid status.
How to Fix It
- Open the parent order and check its notes. The order notes panel logs exactly what the gateway reported, if anything, which usually reveals whether payment was actually attempted.
- Check the gateway's own dashboard (Stripe, PayPal, etc.) for that specific transaction — if it shows a successful charge that WooCommerce never recorded, the callback/webhook is the problem, not the payment itself.
- For a genuinely abandoned checkout, the correct action is usually to cancel the pending order/subscription rather than leave it indefinitely, since no payment was ever completed.
- For a webhook delivery failure, the order can be manually marked as paid once you've independently confirmed the charge succeeded on the gateway's side — but fix the underlying webhook issue too, or every future renewal will have the same problem.
- For offline payment methods, confirm the store's process for manually marking bank-transfer orders paid once funds are actually received is being followed consistently.
See WooCommerce fixes if pending subscriptions are piling up rather than being a one-off case — that pattern usually points at a gateway integration issue worth fixing properly.