Stripe Bridge
Milo Stripe Bridge runs recurring billing through the official WooCommerce Stripe gateway. It is designed for stores that migrated from WooCommerce Subscriptions and want to keep their existing Stripe setup.
Requirements
- Milo Subscriptions (free core)
- WooCommerce Stripe Gateway, connected to your Stripe account
- A valid license key (Milo Subscriptions > Settings > Licenses)
How it works
Sign-ups
When a checkout contains a subscription product, the bridge forces WC Stripe to save the payment method for off-session use. Stripe sets up the mandate and runs SCA while the customer is present, so renewals can charge the card later without the customer. This covers the standard checkout and 3DS-challenged flows.
Renewals
Nothing to configure. Milo copies the Stripe source onto each renewal order and charges it through WC Stripe’s own off-session payment code. If a charge fails, Milo’s normal failed-payment handling (and the Failed Payment Retry add-on, if installed) applies.
Changing cards
On a subscription billed with Stripe, the My Account “Change payment method” page shows the customer’s saved Stripe cards that carry an off-session mandate, plus a link to WooCommerce’s native “Add payment method” page (which itself establishes a mandate for new cards). Choosing a card updates the subscription’s renewal source immediately.
By default, cards saved before SCA (legacy src_/card_ tokens) are not offered, because Stripe may decline them off-session in SCA markets. If your store’s base is grandfathered, enable Offer legacy saved cards in the settings.
Mandate health
Milo Subscriptions > Stripe Bridge lists every Stripe-billed subscription with a verdict:
- Mandate OK: the renewal source is a modern PaymentMethod saved off-session.
- Legacy source: a pre-SCA source. Renewals usually keep working (Stripe grandfathers existing recurring mandates), but consider having the customer re-save their card.
- No renewal source: the subscription has no Stripe source and the next renewal will fall back to a manual invoice. Use the change-payment flow (or ask the customer) to attach a card.
Settings
Milo Subscriptions > Settings > General > Stripe Bridge:
| Setting | Default | Effect |
|---|---|---|
| Enable the Stripe bridge | On | Turns all bridge behavior on or off. |
| Offer legacy saved cards | Off | Shows pre-SCA tokens in the change-payment form. |
For developers
milo_stripe_bridge_eligible_tokens( $tokens, $user_id ): filter the cards offered in the change-payment form.- The bridge is inert when Milo Subscriptions is inactive, and the change-payment veto lifts automatically if the Stripe gateway is disabled.
Did this page miss something?
Tell us and we rewrite it, usually the same day.