Every subscription has a status that describes its current state. Milo Subscriptions registers six subscription statuses.
The status list
| Status | Slug | Description |
|---|---|---|
| Pending | wc-pending | Initial state while the first payment is being confirmed. |
| Active | wc-active | The subscription is running and renewals are scheduled. |
| On-hold | wc-on-hold | The subscription is paused. No renewals are attempted; entitlements are revoked. |
| Pending cancellation | wc-pending-cancel | The customer has cancelled but access continues until the end of the current paid period. |
| Cancelled | wc-cancelled | The subscription is ended. No further renewals; entitlements are revoked. |
| Expired | wc-expired | The subscription reached its Expire-after or Fixed-expiry date. |
What each status means
Pending
A new subscription that has not yet been confirmed. Once the first payment succeeds, the subscription moves to Active.
Active
The standard running state. Renewals are scheduled; entitlements are granted.
On-hold
Set when the customer or admin pauses, or when a renewal fails and no retry add-on is handling retries. No renewal charges occur; entitlements are revoked. The subscription can be reactivated.
Pending cancellation
Set when a customer cancels mid-period with a future next-payment date. The subscription keeps all entitlements until that date, then moves to Cancelled.
Cancelled
Ended. No renewals, no entitlements. Not reversible: to reinstate the customer, create a new subscription (the plugin supports a Resubscribe flow on My Account).
Expired
The subscription reached its Expire-after count or Fixed-expiry date. Similar to Cancelled for access purposes, but distinct in analytics.
Status transitions
Typical lifecycle:
Pending → Active → (renewals) → Active → ... → Cancelled / Expired
Renewal outcomes:
Active → On-hold → Active (reactivated)
Active → On-hold → Cancelled (retries exhausted, if using a retry add-on)
Customer cancellation mid-period:
Active → Pending cancellation → Cancelled (at period end)
The exact “Cancelled immediately vs Pending cancellation” choice is made automatically by the plugin based on whether the subscription has a future next-payment date. There is no admin setting to force one mode.
Changing status manually
Admins can change status from Subscriptions → All Subscriptions (bulk actions: Activate, Put on hold, Cancel, Move to Trash) or from the subscription detail page (status dropdown with context-aware actions).
Effects on the customer
| Status | Access | Renewals |
|---|---|---|
| Pending | Granted pending confirmation | Not yet |
| Active | Full | Scheduled |
| On-hold | Revoked | Paused |
| Pending cancellation | Granted until period end | Cancelled |
| Cancelled | Revoked | None |
| Expired | Revoked | None |
Effects on downloads and roles
Downloads and role management follow the subscription status. Active and Pending cancellation grant access; Pending, On-hold, Cancelled, and Expired revoke access.
Reporting
Analytics uses these statuses. For example, active-subscriber counts include Active and Pending. Per-product analytics include Active, On-hold, and Pending cancellation. Churn and expiration are counted separately.