Change Portal and Subscription Post Access based on Stripe Payment Status (past_due VS. unpaid)

Latest version on DO droplet. The idea is to include Stripe payment status into the Ghsot core, allowing users to manually set the access level based on payment status.

Below is how it works today, please correct me if I’m wrong.

Failed re-occurring payment: user still has access

The main problem is that by default, the user will continue to have paid content access even if the re-occurring subscription payment fails.

If and when the re-occurring payment fails, the subscription status is set to Past Due which is how Stripe by default functions.

It is not until the Stripe status is updated to unpaid that paid post access is removed - which can take weeks.

Different Stripe statuses and what they mean

There’s past_due and there’s unpaid .

past_due means that the customer is in Stripe’s payment retry state during which they still have access to paid-members only content.

Once the “retry” has failed enough times (also a setting in your Stripe account), the customer will be moved to unpaid which removes access.

Images

What we need

An toggle option in Ghost admin under Payments for “once the re-occurring payment fails, based on Stripe status, remove access immediately” - YES / NO.

This could be further developed, allowing various options for when to deny paid post access.

Ideas? Thoughts?