How Do I Change a WooCommerce Subscription's Status?
What Each Status Actually Means
WooCommerce Subscriptions statuses aren't arbitrary labels — each one controls real behavior (whether renewals are scheduled, whether the customer has access, whether retries are attempted):
- Active — renewing normally, full access granted.
- On hold — typically after a failed payment; access may be paused depending on integration, renewals can resume once resolved.
- Pending — parent order not yet paid; not truly started yet.
- Pending cancellation — cancelled by request but still active until the current paid period ends.
- Cancelled — will not renew again.
- Expired — reached a defined end date (for subscriptions with a fixed length) rather than being cancelled.
When a Manual Change Is Actually Needed
- Reconciling after a payment issue was confirmed resolved outside WooCommerce — for example, a PayPal IPN failure where the charge genuinely succeeded but WooCommerce never heard about it.
- Correcting a subscription left in the wrong state by a plugin conflict or scheduler failure, once the underlying cause has actually been fixed.
- Granting a manual comp/courtesy period by putting a subscription on hold or extending it, outside the normal billing cycle.
- Bulk cleanup after a data import or migration left subscriptions in an inconsistent status.
How to Do It Safely
- Diagnose the actual cause before changing status — a manual status change fixes the symptom for one subscription, not whatever caused it, which will keep recurring for other subscriptions if left unaddressed.
- Use the admin "Change status" action rather than editing the database directly. This ensures the same hooks other plugins rely on still fire correctly, keeping any integrated systems in sync.
- Add an order note explaining why when making a manual change, so anyone looking at the subscription later (including future you) understands it wasn't an automatic transition.
- For bulk changes, use the list-view bulk actions rather than editing subscriptions one at a time, but test the effect on one subscription first if you're not certain what a given transition will trigger.
If you're changing statuses manually as a recurring workaround for the same underlying problem, that's worth fixing properly instead — see WooCommerce fixes.