diff --git a/ghost/members-api/lib/stripe/index.js b/ghost/members-api/lib/stripe/index.js index f63014b5bf..58fe464197 100644 --- a/ghost/members-api/lib/stripe/index.js +++ b/ghost/members-api/lib/stripe/index.js @@ -108,6 +108,20 @@ module.exports = class StripePaymentProcessor { }; } + async cancelAllSubscriptions(member) { + const subscriptions = await this.getSubscriptions(member); + + const activeSubscriptions = subscriptions.filter((subscription) => { + return subscription.status !== 'cancelled'; + }); + + await Promise.all(activeSubscriptions.map((subscription) => { + return del(this._stripe, 'subscriptions', subscription.subscription); + })); + + return true; + } + async getSubscriptions(member) { const metadata = await this.storage.get(member);