Skip to main content

benecaster_subscription_resumed

Action Premium

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 →