Este documento explica cómo funciona la extensión Pagos recurrentes con Stripe.
Configuración de Stripe
Es importante seguir todos los pasos descritos en la Documentación de configuración de Stripe.
Nota importante de configuración: ¡Si las Webhooks no están configuradas correctamente, las suscripciones no funcionarán como es debido!
Cancelar suscripciones
Al usar Stripe, una cancelación puede iniciarse ya sea desde EDD o desde el Panel de control de Stripe.
Cancelar como cliente
Los clientes pueden cancelar sus propias suscripciones desde la página de cuenta de tu tienda.
Cancelar como administrador del sitio
To cancel a subscription from the EDD admin go to Downloads → Subscriptions and click “View” on the item you want to cancel.
Then in the bottom of the next screen click on “Cancel Subscription”.
Cuando estableces el estado de una suscripción como cancelada, se cancela inmediatamente, pero el cliente seguirá teniendo acceso a su material comprado durante el tiempo por el que haya pagado.
Por ejemplo, si han pagado 10 €/mes y cancelas a mitad de mes, todavía tendrán acceso a su material durante el resto del mes, pero no se les volverá a facturar y el acceso se detendrá al final del mes.
Desde el Panel de control de Stripe
Para cancelar una suscripción desde el Panel de control de Stripe, inicia sesión en Stripe y busca la barra de búsqueda en la parte superior de la página.
Puedes encontrar clientes buscando por:
- el ID del cargo
- el ID del perfil de suscripción
- el número de ID de cliente de EDD
- el correo electrónico del cliente
Una vez que hayas encontrado y seleccionado a tu cliente en Stripe, verás una lista de suscripciones.

Si haces clic en Cancelar (icono X junto al nombre de la suscripción), se te darán tres opciones: cancelar inmediatamente, al final del período actual o en una fecha personalizada. A efectos de EDD, no importa cuál elijas entre inmediatamente o al final del período actual, tu cliente no experimentará ninguna diferencia entre las dos. Si eliges una fecha personalizada, que sea posterior al final del período actual, seguirán recibiendo facturación hasta que pase la fecha personalizada.

Resumen de cancelación
No importa si cancelas una suscripción en EDD o en Stripe, el efecto es exactamente el mismo y el cliente no notará ninguna diferencia.
Actualizar información de tarjeta de crédito/débito
Los clientes pueden actualizar la información de su tarjeta para sus suscripciones específicas desde la página de cuenta de tu tienda.
Descriptores de declaración
Cuando un producto está configurado como suscripción, el comportamiento del descriptor es ligeramente diferente al de las compras no de suscripción. Cuando una suscripción se compra por primera vez en tu sitio, se crea un "Producto" en Stripe que se utilizará para todas las compras posteriores de esa suscripción en particular. Puedes ver tu lista actual de Productos iniciando sesión en tu cuenta de Stripe y navegando a Productos.
Cuando se crea este Producto, se crea un descriptor de declaración basado en el nombre de tu producto, independientemente de la configuración mencionada anteriormente en tu panel de WordPress. El descriptor también se pondrá en minúsculas y separará las palabras con guiones. Como es de esperar, esto no queda bien en un extracto bancario. Hay dos formas de cambiar este comportamiento que se recomiendan usar juntas si no te gusta el comportamiento predeterminado:
1. Edita los detalles del Plan
Al ir a Productos en tu cuenta de Stripe, puedes hacer clic en cualquier Producto para ver sus detalles. Una vez en la página de detalles, haz clic en el botón Editar detalles. Se te presentará un modal que te permitirá establecer el descriptor de declaración para ese Producto en particular.
Lo que establezcas aquí se utilizará para todos los pagos de ese plan de suscripción en tu sitio.
2. Filtra el descriptor de declaración predeterminado para los planes de Stripe
El método anterior te permite controlar el descriptor de declaración para una suscripción específica que ya existe. Pero si se crea una nueva suscripción a partir de la primera compra de una suscripción diferente en tu sitio, se aplicará el comportamiento predeterminado. Eso significa que la nueva suscripción seguirá teniendo un descriptor de declaración basado en el nombre del producto por defecto.
Para crear un nuevo descriptor de declaración predeterminado para todas las suscripciones creadas en el futuro (esto no afectará a las suscripciones existentes), utiliza el siguiente filtro:
function custom_edd_recurring_stripe_plan_statement_descriptor( $args, $subscription ) {
$args['statement_descriptor'] = 'New Statement Desc';
return $args;
}
add_filter( 'edd_recurring_create_stripe_plan_args', 'custom_edd_recurring_stripe_plan_statement_descriptor', 10, 2 );
Reemplaza New Statement Desc con tu descriptor de declaración predeterminado preferido (recuerda el límite de 22 caracteres).
En resumen, utiliza el primer método para editar el descriptor de declaración de una suscripción existente. Utiliza el segundo método para establecer un nuevo descriptor de declaración predeterminado para todas las suscripciones futuras.
Problemas comunes relacionados con los webhooks
Se cobra a los clientes demasiadas veces
Si no configuras correctamente tus webhooks de Stripe antes de que un cliente realice una compra y estás utilizando la opción "Veces" en EDD Recurring para cobrar al cliente un número determinado de veces (por ejemplo, 5 veces), se le cobrará demasiadas veces.
Esto se debe a que, sin el webhook, Stripe no puede decirle a EDD que los pagos se realizaron correctamente, por lo que EDD no lo sabe. Debido a esto, EDD piensa que al cliente aún no se le ha cobrado, ¡incluso aunque ya se le haya cobrado 5 veces (o más)!
EDD envía automáticamente una "cancelación de suscripción" a Stripe cuando se alcanza el número de veces. Pero como no hay webhook, EDD no sabe que se le ha cobrado al cliente y nunca cancela la suscripción. Esto da como resultado que se siga cobrando al cliente incluso después de que se haya alcanzado el número de veces establecido. Por eso es importante configurar un webhook inmediatamente después de instalar la extensión de Stripe.
