-
-
Notifications
You must be signed in to change notification settings - Fork 11.1k
Description
Issue Summary
When a member adds a new payment method in Ghost, it is not set as the default in Stripe. As a result, Ghost continues attempting to charge the previous (default) card, even though a new card has been added. This can lead to failed payments and unnecessary passive churn.
Ghost also lacks any UI or backend logic for members to manage or select a default payment method.
Expected behavior:
- Either the newly added card should automatically become the default payment method in Stripe, or
- Members should have the ability to set their default card within Ghost’s billing management interface.
Actual behavior:
- Adding a new card does not change the default payment method.
- The old card remains active and continues to be charged.
- There is no way for the user to manage or switch payment methods manually.
Steps to Reproduce
-
Create a paid membership and complete checkout using any card (e.g., Visa).
-
In the Ghost account portal, go to Billing Info and add a new card (e.g., Mastercard).
-
Observe that:
- The new card is accepted without error.
- In the Billing Info section, the original card (Visa) still appears as the active payment method.
-
Attempt to trigger a renewal or reattempt a failed payment.
-
Note that Stripe continues to charge the old (default) card instead of the new one.
Ghost Version
6.5.1
Node.js Version
20.11.1
How did you install Ghost?
Ghost is installed via a Digital Ocean droplet
Database type
MySQL 8
Browser & OS version
Ubuntu 22.04
Relevant log / error output
Code of Conduct
- I agree to be friendly and polite to people in this repository