Cuando algo no va bien en nuestro sitio web, se generan errores o hay incompatibilidades entre plugins, el procedimiento para localizar la causa suele incluir el desactivar temporalmente todos los plugins para verificar si el error se sigue produciendo y, si no es así, ir activándolos uno a uno hasta comprobar cuál de ellos genera, con su activación, dicho error.
Sin embargo, hay situaciones en las que hay que tener mucho cuidado cuando se realiza esta operación. En especial hay que ser muy cuidadosos si tenemos suscripciones (pagos recurrentes) en nuestra web, ya que hay una serie de cosas a tener en cuentas al desactivar temporalmente WooCommerce Subscriptions.
Tabla de contenidos
Desactivar WooCommerce Subscriptions
WooCommerce Subscriptions es uno de los mejores (si no el mejor) y más populares plugins para suscripciones con WooCommerce. Es ampliamente utilizado y, de hecho, yo mismo recurro a él por defecto para cualquier proyecto que requiera de pagos recurrentes (es muy raro encontrar requerimientos que Subscriptions no cumpla y, si hay alguno, es que ningún otro lo cumplirá tampoco).
Este tipo de plugins (me refiero a los plugins para pagos recurrentes) hacen un uso intensivo de las tareas programadas para varias de sus funcionalidades, por lo que una desactivación puede tener serias consecuencias. Vamos a ver qué cosas tienes que tener en cuenta antes de desactivar WooCommerce Subscriptions (y, en general, cualquier plugin de suscripciones).
Estas consecuencias, relacionadas con las tareas programadas, pueden incluir:
- Perder pagos de renovación, cuando la renovación no la gestiona la pasarela, sino el plugin.
- Perder reintentos de pagos para las renovaciones fallidas.
- Suscripciones que llegan a su fin pero que no son canceladas.
Pérdida de renovaciones
Algunas pasarelas gestionan las renovaciones de pagos periódicos por sí mismas y posteriormente, cuando a través de la API se recibe información de el pago de renovación, WooCommerce Subscriptions genera el pedido correspondiente. Es el caso de PayPal, por ejemplo.
Sin embargo en otras pasarelas el proceso es al contrario: cuando llega el momento de la renovación es WooCommerce Subscriptions el que genera el pedido de renovación y envía a la pasarela la orden de pago, que se procesa (dado que había previamente una autorización para pagos recurrentes, generada en el pedido inicial de suscripción). Un ejemplo de esto es Stripe.
¿Qué ocurre entonces si, cuando llega el momento de renovar una suscripción, WooCommerce Subscriptions está (temporalmente) desactivado?
En principio con PayPal no hay problema: el pago de renovación se recibe, ya que es el propio PayPal el que se encarga de generarlo, y cuando WooCommerce Subscriptions se active de nuevo generará el pedido de renovación.
Pero si la suscripción se está pagando mediante una pasarela que no procesa el pago si no recibe la orden (como Stripe o Redsys) la renovación se puede perder.
Básicamente, las tareas programadas que WooCommerce Subscriptions estableció se siguen ejecutando (se ejecutan mediante la librería Action Scheduler de WooCommerce), pero la acción que debería disparar (el pedido de renovación) no se realiza, porque el encargado de hacerlo es WooCommerce Subscriptions.
La consecuencia es que el pago de renovación ni se produce ni se volverá a intentar, dado que la tarea programada para ello ya se ha ejecutado y no se ha generado ningún error ni fallo. Si, además, la suscripción lleva asociada una membresía (con WooCommerce Memberships), ésta queda en el limbo.
Lo mismo ocurrirá con los reintentos de pagos fallidos que se debieran producir mientras WooCommerce Subscriptions esté desactivado.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Qué hacer si tienes que desactivar WooCommerce Subscriptions
Si vas a desactivar WooCommerce Subscriptions temporalmente es importante evitar que las tareas programadas sigan ejecutándose.
Como ya he explicado, las tareas programadas asociadas a Subscriptions siguen ejecutándose aunque el plugin esté desactivado, con el resultado de que la acción asociada a esas tareas (normalmente la renovación del pago recurrente) no se realizará.
Si mientras Subscriptions está desactivado detenemos la ejecución de las tareas programadas mediante Action Scheduler, éstas quedarán pendientes y podremos permitir que sigan ejecutándose cuando hayamos vuelto a activar Subscriptions.
Detener las tareas programadas de WooCommerce
Para ello podemos usar el plugin Action Scheduler Disable Default Runner, que justamente detiene la ejecución de las tareas de Action Scheduler, así que tendrías que activarlo justo antes de desactivar WooCommerce Subscriptions.
Estas tareas quedan entonces detenidas, pero ojo: no sólo las asociadas a WooCommerce Subscriptions, sino todas las asociadas a WooCommerce. Sin embargo estas tareas no se pierden y, en el momento en que desactivemos el plugin (algo que tendrías que hacer inmediatamente después de volver a activar WooCommerce Subscriptions), vuelven a ejecutarse. Todas ellas, incluidas las renovaciones que deberían haberse producido.
Cuidado al desactivar el plugin de la pasarela de pagos
Otra acción relacionada con esto con la que debes tener mucho cuidado es la desactivación de plugins de pasarelas de pagos.
Cuando desactivas el plugin que habilita una pasarela de pagos, pero WooCommerce Subscriptions sigue activado, las suscripciones que usen esa pasarela se modificarán para utilizar la renovación manual.
Esto significa que la renovación aún se puede pagar, pero el suscriptor tendrá que entrar en su cuenta y pagarla manualmente, seleccionando una nueva pasarela de pagos.
Si el plugin de pasarela que se había desactivado vuelve a estar activo, el usuario podrá seleccionar de nuevo la misma pasarela, pero igualmente habrá tenido que realizar la renovación manualmente. Si no lo hace, pierdes la suscripción (es decir, todas las suscripciones que se pagan mediante esa pasarela y que no se renueven manualmente).
Conclusiones
Así que, como ves, cuando tu sitio web realiza pagos automatizados deberías tener bastante cuidado a la hora de desactivar los plugins asociados a los mismos, ya sea el plugin que gestiona las suscripciones (WooCommerce Subscriptions en este caso) como los plugins de las pasarelas que procesan los pagos de dichas suscripciones.
Miquel dice
Mi woocommerce subscriptions me sale en “desarrollo” y aun estando activado no hace ningun pago recurrente.
¿Cómo se quita el modo desarrollo?