Cancel Subscriptions
Follow the next example to allow users to cancel subscriptions via front-end. If you want to cancel the subscription at the end of the period please go toย Stripe Paymentsย โ Settings โ Defaults and enable the "Cancel subscription at period end" lightswitch.ย However you could override the default setting passing a hidden value with next name: cancelAtPeriodEnd
TIP
We recommend to use the Stripe Customer Portal feature (opens new window)
{% for order in craft.enupalStripe.getSubscriptionsByUser(currentUser.id) %}
{% set subscription = order.getSubscription() %}
{% set redirectUri = 'shop/come-back-please' %}
{% if subscription.status == 'active' and not subscription.cancelAtPeriodEnd %}
<form method="post">
<input type="hidden" name="action" value="enupal-stripe/stripe/cancel-subscription">
<input type="hidden" name="subscriptionId" value="{{ order.stripeTransactionId }}">
<input type="hidden" name="cancelAtPeriodEnd" value="true">
<input type="hidden" name="redirect" value="{{ redirectUri|hash }}">
{{ csrfInput() }}
<ul>
<li>{{ 'Order Number:'|t }} {{ order.number }}</li>
<li>{{ 'Plan nickname:'|t }} {{ subscription.planNickName }}</li>
<li>{{ 'Status:'|t }} {{ subscription.status }} </li>
<li>{{ 'Interval:'|t }} {{ subscription.interval }} </li>
<li>{{ 'Period Start:'|t }} {{ subscription.startDate|date }} </li>
<li>{{ 'Period end:'|t }} {{ subscription.endDate|date }} </li>
<li>{{ 'Quantity:'|t }} {{ subscription.quantity }} </li>
</ul>
<button type="submit"> {{ "Cancel Membership"|t }}</button>
</form>
{% endif %}
{% endfor %}
# Reactivate Subscription
When a subscription has been scheduled for cancellation usingย cancel_at_period_end
ย set to true, it can be reactivated at any point up to the end of the period. Anyย metered usage
{% for order in craft.enupalStripe.getSubscriptionsByUser(currentUser.id) %}
{% set subscription = order.getSubscription() %}
{% set redirectUri = 'shop/come-back-please' %}
{% if subscription.status == 'active' and subscription.cancelAtPeriodEnd %}
<form method="post">
<input type="hidden" name="action" value="enupal-stripe/stripe/reactivate-subscription">
<input type="hidden" name="subscriptionId" value="{{ order.stripeTransactionId }}">
<input type="hidden" name="redirect" value="{{ redirectUri|hash }}">
{{ csrfInput() }}
<ul>
<li>{{ 'Order Number:'|t }} {{ order.number }}</li>
<li>{{ 'Plan nickname:'|t }} {{ subscription.planNickName }}</li>
<li>{{ 'Status:'|t }} {{ subscription.status }} </li>
<li>{{ 'Interval:'|t }} {{ subscription.interval }} </li>
<li>{{ 'Period Start:'|t }} {{ subscription.startDate|date }} </li>
<li>{{ 'Period end:'|t }} {{ subscription.endDate|date }} </li>
<li>{{ 'Quantity:'|t }} {{ subscription.quantity }} </li>
</ul>
<button type="submit"> {{ "Reactivate Membership"|t }}</button>
</form>
{% endif %}
{% endfor %}
TIP
Ajax requests are supported
โ Update billing details Display Errors โ