How Do Customers Update a WooCommerce Payment Method?
Why This Happens
WooCommerce Subscriptions stores the payment method as part of the subscription record, tied to whichever gateway integration handled the original checkout. The "Change payment method" flow lets a customer re-run that same setup process for a new card or a different supported gateway, replacing the token used for future renewals without needing to cancel and start a new subscription.
Common Causes
- Option not visible because the current status doesn't allow it. Some subscription statuses (fully cancelled or expired, for instance) intentionally hide the option since there's nothing left to charge going forward.
- Gateway doesn't support payment-method changes. Certain gateway integrations, particularly older or offline ones, don't implement the change-payment-method capability at all.
- New payment method fails validation. The same card-decline or SCA issues that affect a renewal charge can affect adding a new card, and the error message returned isn't always specific about why.
- Custom My Account page missing the subscriptions endpoint content, the same underlying cause as a missing cancel option — a rebuilt account page not including WooCommerce's own subscription management markup.
- Change saved but next renewal still uses the old method. Usually a caching issue on the subscription's stored token, or the change was made after that cycle's renewal had already been scheduled and partially processed.
How to Fix It
- Confirm the subscription's status allows the change — active, on-hold and pending-cancellation subscriptions typically support it; fully cancelled ones don't need to.
- Test with a known-good card to isolate whether the issue is the specific new card being rejected versus the change-payment-method flow itself being broken.
- Check the My Account page setup if the option is missing entirely, the same way you would for a missing cancellation option.
- For a change that saved but didn't apply to the next renewal, check the subscription's admin screen directly to confirm which payment method token is actually stored against it, and correct it manually if it's out of sync.
See WooCommerce fixes if payment-method updates are failing for multiple customers rather than an isolated case.