diff --git a/ghost/members-api/index.js b/ghost/members-api/index.js index a7e7b115b6..750f7b9587 100644 --- a/ghost/members-api/index.js +++ b/ghost/members-api/index.js @@ -64,6 +64,22 @@ module.exports = function MembersApi({ return true; } + const firstUnpaidSubscription = await StripeCustomerSubscription.findOne({ + status: 'unpaid' + }); + + if (firstUnpaidSubscription) { + return true; + } + + const firstPastDueSubscription = await StripeCustomerSubscription.findOne({ + status: 'past_due' + }); + + if (firstPastDueSubscription) { + return true; + } + return false; } diff --git a/ghost/members-api/lib/stripe/index.js b/ghost/members-api/lib/stripe/index.js index 7f45e57798..48c4ec27b0 100644 --- a/ghost/members-api/lib/stripe/index.js +++ b/ghost/members-api/lib/stripe/index.js @@ -341,7 +341,7 @@ module.exports = class StripePaymentProcessor { const subscriptions = await this.getSubscriptions(member); return subscriptions.filter((subscription) => { - return subscription.status === 'active' || subscription.status === 'trialing'; + return ['active', 'trialing', 'unpaid', 'past_due'].includes(subscription.status); }); }