wc-stripe-subscriptions
Stripe and WooCommerce Subscriptions
Use this for the boundary between Stripe's token/intent model and WCS's subscription, renewal-order, and payment-method-change model. A Woo token alone is not enough: renewals also depend on the subscription gateway and Stripe metadata.
Runtime contract
Stripe initializes Subscriptions support only when WC_Subscriptions and WC_Subscription are loaded. The main stripe gateway advertises:
subscriptions, cancellation, suspension, reactivation- amount/date changes
- customer/admin payment-method changes
- multiple subscriptions
It does not advertise gateway_scheduled_payments. Therefore WCS schedules renewals, creates renewal orders, and dispatches the Stripe gateway hook. Do not create a second Stripe renewal cron.
Stripe 10.9 uses an internal shared hook manager so the main gateway and lazily created Optimized Checkout method do not register the same subscription callbacks twice. Do not instantiate Stripe gateway/payment-method classes merely to obtain their hooks, and do not call the internal hook manager as an extension API. Observe the public Woo/WCS/Stripe hooks instead.
Reusable Stripe sub-gateways may have different IDs and capabilities. Ask the actual gateway object: