Subscription Actions Reference
These actions are not enabled by default.
You will need to enable specific actions on your app.surecart.com developer section - Manage Webhooks [How to Edit Webhook Endpoint]
Examples
Subscription Renewal
In this example, we will add a renewal count to a WordPress user. This can be used to keep track of how many renewals have happened for a specific subscription, product or price for example.
add_action( 'surecart/subscription_renewed', function( $subscription, $webhook_data = [] ) {
// this is not the price we are looking for.
if ( 'db6021f6-e972-4006-857c-c27bff9fcbeb' !== $subscription->price ) {
return;
}
// get the WP user from the subscription.
$wp_user = $subscription->getUser();
// the wp user does not exist because maybe it was deleted.
if ( empty( $wp_user ) ) {
return;
}
// get the current renewals count of the user.
$renewals_count = (int) get_post_meta( $wp_user->ID, 'renewal_acount', true );
// increment the renewals count.
update_post_meta( $wp_user->ID, 'renewal_count', $renewals_count++ );
}, 10, 2 );
Subscription Set To Cancel
In this example, we will add user meta to the account for when the subscription is set to cancel. This way we can display a banner elsewhere on our site to inform them they are losing access. It's useful to store this locally, on the WordPress installation so that your site is not slowed down by API calls to SureCart servers during the PHP request lifecycle.
/**
* When the subscription is set to cancel, store this on the WP user.
*/
add_action( 'surecart/subscription_set_to_cancel', function( $subscription, $webhook_data = [] ) {
// this is not the price we are looking for.
if ( 'db6021f6-e972-4006-857c-c27bff9fcbeb' !== $subscription->price ) {
return;
}
// get the WP user from the subscription.
$wp_user = $subscription->getUser();
// the wp user does not exist because maybe it was deleted.
if ( empty( $wp_user ) ) {
return;
}
// store this on the user.
update_post_meta( $wp_user->ID, 'cancelling', true );
}, 10, 2 );
Then we will want to do the opposite if the subscription is "un-cancelled", which means it's made active again.
/**
* When the subscription is active, store this on the WP user.
*/
add_action( 'surecart/subscription_made_active', function( $subscription, $webhook_data = [] ) {
// this is not the price we are looking for.
if ( 'db6021f6-e972-4006-857c-c27bff9fcbeb' !== $subscription->price ) {
return;
}
// get the WP user from the subscription.
$wp_user = $subscription->getUser();
// the wp user does not exist because maybe it was deleted.
if ( empty( $wp_user ) ) {
return;
}
// store this on the user.
update_post_meta( $wp_user->ID, 'cancelling', false );
}, 10, 2 );
Reference
surecart/subscription_canceled
Occurs when a subscription's status changes to canceled
surecart/subscription_created
Occurs when a subscription is created
surecart/subscription_completed
Occurs when a subscription's status changes to completed
surecart/subscription_made_active
Occurs when a subscription's status changes to active
surecart/subscription_made_trialing
Occurs when a subscription's status changes to trialing
surecart/subscription_renewed
Occurs when a subscription renews
surecart/subscription_set_to_cancel
Occurs when a subscription is set to cancel at the end of the current billing period
surecart/subscription_updated
Occurs when a subscription is updated
surecart/period_paid
Occurs whenever a billing period is paid. A common use-case is when a subscription renews.
Updated 8 months ago