Estados de la suscripción
El estado de una suscripción es la pieza de estado más importante: determina si se disparan las renovaciones, si el cliente conserva acceso y qué acciones están disponibles. Esta página lista cada estado, qué causa cada transición y qué cambia cuando cambia el estado.
Los seis estados
| Estado | Significado | ¿Renueva? | ¿Cliente tiene acceso? |
|---|---|---|---|
| active | Suscripción sana, cobros según calendario. | Sí | Sí |
| scheduled | Pedido tomado, fecha de inicio en el futuro. Retenido en wc-scheduled hasta entonces. | Aún no — pasa a active en la fecha de inicio. | Depende de tu setup (típicamente no hasta active). |
| on-hold | Última renovación falló; reintentos en curso. | Pausado mientras los reintentos corren. | Sí (periodo de gracia). Configurable. |
| paused | Cliente (o admin) pausó. Se reanudará en una fecha o on-demand. | No | Configurable (tú decides). |
| cancelled | Cliente o admin canceló. Estado terminal. | No | No |
| expired | Alcanzó el length configurado. Estado terminal. | No | No |
Transiciones comunes
Quién dispara cada transición y cómo escucharla:
| De → A | Disparado por | Hook (acción) |
|---|---|---|
| (nueva) → active | Checkout inicial exitoso, sin fecha de inicio. | aswc_after_created_subscription |
| (nueva) → scheduled | Checkout inicial exitoso con fecha de inicio futura. | aswc_subscription_scheduled |
| scheduled → active | Llega la fecha de inicio. Action Scheduler. | aswc_subscription_activated |
| active → on-hold | Pago de renovación falla. | aswc_subscription_on_hold |
| on-hold → active | El reintento funciona, o el cliente paga manualmente. | aswc_subscription_reactivated |
| on-hold → cancelled | Todos los reintentos fallaron. Umbral configurable. | aswc_subscription_cancelled |
| active → paused | Pausa del cliente desde Mi Cuenta, o admin. | aswc_subscription_paused |
| paused → active | Reanudación del cliente, o fecha programada. | aswc_subscription_reactivated |
| active → cancelled | Cliente o admin cancela. | aswc_subscription_cancelled |
| active → expired | Alcanzó el length configurado (N renovaciones). | aswc_subscription_expired |
Periodo de gracia durante on-hold
Cuando una renovación falla, la suscripción pasa a on-hold. El plugin reintenta el cargo hasta 3 veces con backoff exponencial (ver Reintentos). Durante esa ventana el cliente típicamente conserva acceso — puedes usarlo como periodo de gracia para que actualice su tarjeta.
Si el rol del cliente se conmuta (por ejemplo suscriptor mientras está activo, cliente cuando no), la conmutación ocurre en la transición fuera de active, así que on-hold típicamente sigue dando acceso.
Dónde se ve el estado
- Admin: WooCommerce → Suscripciones. Cada suscripción tiene un badge de estado.
- Cliente: Mi Cuenta → /aswc-subscriptions/. Mismos badges, etiquetas amigables.
- API REST:
GET /wp-json/aswc-route/v1/aswc-view-subscription/devuelve el string de estado.
Hooks relevantes
Cada transición dispara una acción documentada. Filtra o escucha la que necesites:
aswc_subscription_status_updated— se dispara en cada cambio de estado. Bridge-only (WCS) — ver callout allí.aswc_can_subscription_be_updated_to— filtro para vetar una transición.aswc_subscription_statuses— filtra la lista de estados registrados.- Lista completa de 236 hooks: Referencia de hooks.