Hasta ahora, la integración de Contact Form 7 con RedSys solo sabía cobrar pagos únicos: el cliente rellenaba un formulario, pagaba con tarjeta y ahí terminaba la relación entre el formulario y la pasarela. Con la versión 2.0 incorporamos la novedad que más se nos ha pedido: pago recurrente mediante suscripciones, usando la tokenización de tarjeta (COF, «card on file») que ofrece RedSys.
El primer pago se procesa como siempre, pero además RedSys guarda un identificador de la tarjeta. Con ese identificador, el plugin puede volver a cobrar automáticamente en el futuro sin que el cliente tenga que introducir sus datos otra vez. A partir de ahí ya puedes montar cuotas mensuales, membresías, donaciones periódicas o cualquier cobro que se repita en el tiempo.
Vamos a montar un caso concreto para ver cómo se configura en la práctica. Editamos el formulario de Contact Form 7 y abrimos su nueva pestaña RedSys:
20 (también puedes poner una etiqueta de campo, por ejemplo [precio], si el importe lo elige el propio formulario).1 mes (las unidades disponibles son días, semanas, meses y años).6 (déjalo vacío o a 0 si la suscripción no debe tener fecha de fin).Mientras rellenas estos campos, el propio formulario de ajustes te muestra un resumen en texto: «Se cobrará al cliente cada 1 mes, 6 veces en total», para confirmar de un vistazo que la configuración es la que quieres antes de guardar.
El importe que se cobrará en cada renovación es siempre el que se calculó en el primer pago: si el precio depende de un campo del formulario, ese valor queda fijado en el momento del alta y no cambia aunque el cliente edite el formulario después o tú modifiques el precio por defecto.
Un detalle que cuida los casos límite: si la suscripción se da de alta un día 31, el cobro se hace en el último día de los meses más cortos (28, 29 o 30), pero conserva el «día ancla» original, así que no se va desplazando mes a mes como pasaría con un cálculo ingenuo de «+30 días».
Dentro del menú de Contact Form 7 aparece un nuevo panel, Suscripciones RedSys, con una fila por cliente y columnas para el estado (pendiente, activa, cobro fallido, suspendida, cancelada, finalizada), el importe, la periodicidad, la fecha del próximo cobro y cuántos cobros lleva realizados sobre el total. Se puede filtrar por formulario, igual que en el listado de pagos, para aislar por ejemplo solo las altas de un formulario de socios concreto.
Al entrar en la ficha de una suscripción concreta encuentras, además de los datos de arriba:
Los pagos individuales de una suscripción quedan agrupados dentro de ella, así que todo el historial de un cliente está en un único sitio en lugar de disperso entre pagos sueltos. Y a la inversa: el listado general de pagos incluye ahora una columna con enlace directo a la suscripción a la que pertenece cada cobro, para poder navegar en ambos sentidos.
Las suscripciones se cobran mediante una tarea programada de WordPress (cra_cobrar_suscripciones), que se ejecuta cada hora y revisa qué suscripciones tienen ya su próximo cobro vencido. Si un intento falla —por ejemplo, tarjeta caducada o fondos insuficientes— el plugin no lo da por perdido: reintenta a los 1, 3 y 7 días. Si los tres reintentos fallan, la suscripción pasa a estado suspendida y deja de intentarlo, avisando tanto al cliente como al administrador.
Para evitar cobros de más se aplican varias comprobaciones antes de lanzar cada cargo: que haya pasado el intervalo mínimo desde el cobro anterior, que el importe siga siendo válido y que no se haya superado el número máximo de cobros pactado; si algo no cuadra, la suscripción se detiene y se avisa al administrador en lugar de intentar cobrar igualmente. Y si por lo que sea se pierde la respuesta que da RedSys justo después de un cobro (por ejemplo, un timeout de red), la notificación posterior que envía el banco reconcilia el estado del pago, de forma que no se acaba cobrando dos veces por el mismo periodo.
Aquí hay un punto importante para sitios con poco tráfico: WordPress solo comprueba si toca ejecutar sus tareas programadas cuando alguien visita la web. Si tu web recibe pocas visitas, esa comprobación puede tardar horas en dispararse, y un retraso aquí significa directamente un cobro que no sale a tiempo. Por eso, si usas pagos recurrentes, te recomendamos sustituir el cron de WordPress por uno real del sistema operativo:
wp-config.php, antes de la línea «That’s all, stop editing!»:define( 'DISABLE_WP_CRON', true );https://tusitio.com/wp-cron.phpLa mayoría de paneles de control (cPanel, Plesk, etc.) permiten configurar esto sin necesidad de acceso SSH; si tienes dudas, tu proveedor de hosting puede ayudarte con el paso concreto.
Incorporamos el nuevo shortcode [cra_mi_suscripcion]. Basta con crear una página y añadirlo para que el cliente pueda consultar el estado de su suscripción (importe, periodicidad, próximo cobro, cobros realizados sobre el total), ver el historial completo de cargos y darse de baja él mismo, todo sin necesidad de tener una cuenta en la web: el acceso se hace mediante un enlace único y firmado, no por login.
Ese enlace se incluye automáticamente en los correos de la suscripción; solo tienes que indicar qué página lleva el shortcode en Ajustes RedSys → pestaña «Suscripciones» → «Página de gestión de suscripciones», y el plugin construye la URL con el identificador y la clave de la suscripción correspondiente cada vez que envía un correo. Si el cliente además tiene una cuenta en la web y ha iniciado sesión, esa misma página le muestra el listado de todas sus suscripciones, no solo la del último enlace recibido.
Por seguridad, la baja nunca se procesa con un simple enlace de tipo ?cancelar=1: siempre exige el envío de un formulario con confirmación explícita del navegador. Esto evita el problema clásico de que un gestor de correo o un escáner de enlaces «visite» automáticamente la URL del correo y cancele la suscripción sin que el cliente lo haya pedido.
La nueva página «Correos RedSys» (con su propia pestaña dentro de Ajustes RedSys) reúne todos los avisos automáticos del plugin, tanto de pagos sueltos como de suscripciones, y para cada uno puedes activarlo o desactivarlo y reescribir el asunto y el cuerpo con el editor visual TinyMCE. Para las suscripciones hay cinco correos específicos al cliente:
El cuerpo por defecto del correo de alta, por ejemplo, ya viene con esta plantilla orientativa:
Gracias por suscribirte. Importe: [importe] Periodicidad: [periodicidad] Próximo cobro: [proximo_cobro] Puedes cancelarla cuando quieras desde este enlace: [enlace_gestion]
Los comodines disponibles para estos correos son [importe], [suscripcion_id], [suscripcion_titulo], [periodicidad], [proximo_cobro], [numero_cobro], [total_cobros], [enlace_gestion] y, en el correo de fallo, también [error] con el motivo que ha dado RedSys. El plugin también avisa al administrador (correos separados para cobro fallido, suspensión y para el caso en que RedSys no devuelva identificador de tarjeta al hacer el primer cobro), y ese aviso de cobros correctos recurrentes se puede desactivar de forma independiente para no recibir un correo por cada cuota que se cobra sin incidencias.
Además, el correo de renovación puede tener un texto distinto al de la primera compra: no es raro querer agradecer efusivamente el alta y, en cambio, mantener el recibo de las siguientes cuotas más breve y funcional.
Con esta actualización, Contact Form 7 – Integración con RedSys pasa de gestionar pagos puntuales a gestionar suscripciones completas: alta con tokenización de tarjeta, cobros automáticos con reintentos y comprobaciones de seguridad, gestión detallada desde el escritorio de WordPress (incluyendo reintento y cancelación manual), autogestión del cliente sin necesidad de cuenta, y correos personalizables con comodines para cada paso del ciclo de vida de la suscripción.
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.Prepara tu integración Ceca en WordPress para WooCommerce, formularios y reservas con pruebas, seguridad y…
El pago fraccionado de RedSys para WooCommerce lleva un tiempo permitiendo dividir el precio de…
Aprende a añadir CECA a GiveWP, configurar credenciales y validar pagos para aceptar donaciones con…
Configura cobros con formularios WordPress y conecta RedSys, Bizum o Ceca según tu plugin, tipo…
Ya está disponible la versión 1.24 de Contact Form 7 - Integración con RedSys, y…
Bizum vs tarjeta en formularios WordPress: compara conversión, costes, seguridad y compatibilidad para elegir el…