benecaster_subscription_resumed
Fires when a built-in membership subscriber un-cancels a scheduled cancellation through the native billing portal before the billing period ends. After cancel_at_period_end is cleared on the Stripe subscription, the subscriber’s scheduled end date is removed and they remain active. Feed access was never interrupted — cancel_at_period_end = true does not revoke the subscriber’s feed token.
This action fires only when the resume request succeeds. If Stripe rejects the request — for example because the subscription is already fully cancelled — the action does not fire. Only built-in membership subscribers can trigger this action.
This action and benecaster_subscription_activated are companions on this one event, not alternatives. The native bridge fires both: this dedicated action, carrying the Stripe subscription ID that $source cannot; and the general benecaster_subscription_activated with $source = 'resumed', so code that only listens there sees the event too without needing native-bridge- specific knowledge. Use this action for anything that needs the Stripe subscription ID; use the general hook’s 'resumed' value for anything that wants to react uniformly across all four bridges.
There is still no OTHER bridge’s equivalent to this specific action — it remains native-bridge-only. An external membership plugin un-cancelling a subscription surfaces only as benecaster_subscription_activated with $source set to 'resubscribe' — the same value used for a subscriber who genuinely lapsed and came back, and on some bridges for a payment recovery or an admin grant as well. So on a bridge you can see that somebody returned, but not that they changed their mind before their access ever stopped. That distinction exists only for built-in membership, and only via this action.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
$user_id |
int |
— | WordPress user ID of the subscriber who resumed |
$show_id |
int |
— | ID of the show |
$stripe_subscription_id |
string |
— | The Stripe subscription whose `cancel_at_period_end` was cleared |
Examples
Cancel win-back sequence when subscriber changes mind
add_action( 'benecaster_subscription_resumed', function (
int $user_id,
int $show_id,
string $stripe_subscription_id
): void {
$email = get_userdata( $user_id )->user_email;
my_crm_cancel_sequence( $email, 'winback-24h' );
my_analytics_track( 'subscription_resumed', [ 'user_id' => $user_id, 'show_id' => $show_id ] );
}, 10, 3 );
Notes
Fires only for built-in membership subscribers. The subscriber's feed token is not affected — the feed URL is unchanged.
Need this built rather than just documented? See our services →