v2.0.0 — Payment Bridges
Renovaciones off-session nativas en Stripe, PayPal Payments y WooPayments. Redsys incluida en el núcleo del plugin. El plugin ya no depende de la extensión WooCommerce Subscriptions. Se retira el soporte de PayPal Standard.
Lo nuevo — arquitectura Payment Bridges
Hasta la 1.0.x, las renovaciones recurrentes en Stripe / PayPal / WooPayments necesitaban la extensión de pago WooCommerce Subscriptions. La 2.0.0 publica una capa de bridges que consume las APIs públicas de los plugins oficiales gratuitos de esas pasarelas y ejecuta las renovaciones off-session directamente — sin la extensión Subscriptions.
Bridge de Stripe
- Renovaciones off-session
PaymentIntentsobre la tarjeta guardada del cliente. - Detección de SCA: cuando una renovación requiere autenticación, el pedido se marca como fallido con
authentication_requiredy el retry scheduler reagenda segúnaswc_payment_retry_intervals. - Verificación de divisa: rechaza cobrar una renovación en una divisa distinta a la del pago original.
- Handler de webhooks para
charge.refunded,payment_intent.payment_failed(idempotente),payment_method.detachedycharge.dispute.created. - Requiere WooCommerce Stripe Payment Gateway 7.0+ (id de pasarela
stripe, másstripe_sepa).
Bridge de PayPal Payments
- Renovaciones MIT con token vaulteado vía Orders v2 (
PaymentSource('paypal', { vault_id, stored_credentials })). - Códigos de error normalizados para toda la matriz de PayPal (
AGREEMENT_ALREADY_CANCELLED,INSTRUMENT_DECLINED,INSUFFICIENT_FUNDS,PAYER_ACTION_REQUIRED,PAYER_CANNOT_PAY,TRANSACTION_REFUSED). - En
AGREEMENT_ALREADY_CANCELLEDse marca el método como inválido (aswc_subscription_payment_method_invalid('agreement_cancelled')) y la suscripción pasa a on-hold para que el cliente re-autorice. - Handler de webhooks para
PAYMENT.CAPTURE.REFUNDED,PAYMENT.CAPTURE.DENIED(idempotente),CUSTOMER.DISPUTE.CREATEDyVAULT.PAYMENT-TOKEN.DELETED. - Requiere WooCommerce PayPal Payments 2.0+ (id de pasarela
ppcp-gateway).
Bridge de WooPayments
- Renovaciones off-session sobre el token guardado del cliente en WooPayments.
- El plugin asegura que el método de pago se guarda en checkout para que las renovaciones tengan un token con el que cobrar — WooPayments solo lo guarda automáticamente con la extensión Subscriptions activa.
- Requiere WooPayments 7.0+ (id de pasarela
woocommerce_payments).
Redsys — bundled
Redsys va dentro de este plugin. Se carga automáticamente salvo que tengas instalado uno de los plugins independientes de Redsys (el gratuito WooCommerce Redsys Gateway Light o el premium WooCommerce Redsys Gateway), en cuyo caso la versión bundled se aparta.
Añadido transversal
- Manejo de 3D Secure (SCA) en renovaciones con códigos de error claros y hooks para recuperación del cliente.
- Reintento automático de renovaciones fallidas vía el retry scheduler.
- Detección de acuerdo cancelado de PayPal.
- Verificación de divisa en renovaciones.
- Cambio de método de pago entre pasarelas desde Mi Cuenta — la siguiente renovación usa el nuevo método.
- Detección de disputas y chargebacks en Stripe y PayPal — los pedidos disputados pasan a on-hold.
- Detección de eliminación de método de pago en Stripe — toda suscripción que use una tarjeta o token SEPA eliminados se marca.
- Nuevo ajuste de admin Cancel subscription on full refund of a renewal order en
WooCommerce → Ajustes → Advanced Subscriptions → Ajustes avanzados. Desactivado por defecto. - Los reembolsos del pedido inicial (parent) siempre cancelan la suscripción, independientemente del toggle anterior.
- Notas automáticas en la suscripción cuando se reembolsa una renovación (total o parcial).
- Panel de compatibilidad de pasarelas en la pantalla de ajustes del plugin.
Cambiado
aswc_pre_cancel_subscriptionahora también se dispara desde la ruta de cancelación por reembolso del bridge, además de la ruta cliente existente.aswc_cancel_subscription_on_full_refundderiva su valor por defecto del tipo de pedido reembolsado: los parent por defecto atrue(siempre cancelan), los de renovación por defecto al nuevo ajusteaswc_cancel_on_full_refund(por defecto'no'). Ambas rutas de reembolso convergen en el mismo comportamiento dirigido por el nuevo ajuste de admin.
Eliminado (breaking)
- Soporte de PayPal Standard y todos los hooks
aswc_enable_paypal_standard/aswc_skip_gateway_charge. - Referencias heredadas
wcs_*/WC_Subscriptions_*en código en runtime (auditoría completa). El plugin ya no depende del API de la extensión WooCommerce Subscriptions.
Nuevos hooks de desarrollador
La capa Payment Bridges introduce ~10 nuevas actions y filters. La referencia completa está en docs/hooks-reference.md del repo del plugin.
aswc_payment_method_changedaswc_subscription_payment_failedaswc_subscription_payment_method_invalidaswc_gateway_supports_subscriptionsaswc_stripe_bridge_renewal_intent_argsaswc_paypal_payments_bridge_renewal_argsaswc_enable_stripe_bridgeaswc_enable_paypal_payments_bridgeaswc_enable_woopayments_bridgeaswc_bridge_cancel_subscription_on_full_refund
Compatibilidad
- WooCommerce Stripe Payment Gateway 7.0 o superior (para el bridge de Stripe).
- WooCommerce PayPal Payments 2.0 o superior (para el bridge de PayPal).
- WooPayments 7.0 o superior (para el bridge de WooPayments).
- WooCommerce High-Performance Order Storage (HPOS) — totalmente compatible.
- El plugin ya no depende de la extensión WooCommerce Subscriptions.
Ruta de actualización
Actualiza el plugin desde WordPress → Plugins o vía WP-CLI. Los bridges autodetectan los plugins oficiales soportados en plugins_loaded prioridad 20 — sin configuración manual una vez que sus plugins oficiales están instalados y conectados.
// Actualización estándar
$ wp plugin update advanced-subscriptions-for-woocommerce
Success: Updated 1 of 1 plugins.
A quién afecta
- Afectado — acción requerida: tiendas que actualmente cobran suscripciones por PayPal Standard. Migra primero a WooCommerce PayPal Payments.
- Afectado — mejora silenciosa: tiendas en Stripe / WooPayments — el recurrente ahora corre nativo sin la extensión Subscriptions.
- No afectado: tiendas solo en Redsys.