fbpx
  1. Inicio
  2. Base de conocimientos
  3. Consejos, trucos y personalizaciones
  4. Trucos y consejos
  5. Personalización del calendario de intentos de devolución de pagos atrasados

Personalización del calendario de intentos de devolución de pagos atrasados

MemberMouse 3.0+

NOTA: Con los servicios de pago que no admiten la funcionalidad de tarjeta en archivo (es decir, PayPal, Authorize.net), MemberMouse no tiene control sobre el proceso de facturación recurrente y no gestionar automáticamente los pagos atrasados.

Por defecto, MemberMouse tiene un proceso de reclamación incorporado para el cobro de pagos atrasados. Si una suscripción no se factura en la fecha prevista, MemberMouse realiza tres intentos adicionales en el plazo de una semana para cobrar el pago. MemberMouse también enviará una notificación configurable de notificación de pago atrasado después de cada pago fallido. Si desea consultar una descripción detallada de este proceso, vaya a nuestro artículo Gestión automatizada de los pagos atrasados.

Puede ajustar los tiempos entre cada intento de facturación, pero los tres intentos no se pueden cambiar. Se trata de un número fijo.

Aunque este intervalo de recogida funciona muy bien por defecto, es posible que desee personalizar los días que transcurren entre un intento de recogida y la duración de su proceso de recogida general. Esto se puede personalizar utilizando un filtro de WordPress, mm_billing_subscription_dunning_interval.

Los filtros son funciones por las que WordPress pasa datos en ciertos puntos de la ejecución justo antes de tomar alguna acción con los datos. MemberMouse define su propio conjunto de filtros que puede utilizar para controlar el flujo de ejecución en MemberMouse antes de realizar determinadas acciones.

He aquí un ejemplo básico:

function customContentProtection($data)
{
     devuelve true;
}
add_filter('mm_bypass_content_protection', 'customContentProtection');

En este ejemplo, utilizamos la función add_filter() para indicar que el  customContentProtection() cuando MemberMouse aplique el método  mm_bypass_content_protection filtro.

Para obtener más información sobre cómo trabajar con la Action API de WordPress leer este artículo.

Personalización de los intervalos de reclamación

MemberMouse pasa dos argumentos a su función. El primero es un entero $failureInterval que representa el número predeterminado de días antes de que se realice el siguiente intento. El segundo es un número entero $failureState que representa el estado concreto de facturación fallida. Actualmente existen tres estados de fallo: 2, 3, 4 que representan el segundo, tercer y último intento de cobro, respectivamente.

Su función debe devolver un número entero que represente el número de días que deben transcurrir antes del siguiente intento. He aquí un ejemplo que reproduce los intervalos de reclamación por defecto:

function customDunningInterval($failureInterval, $failureState)
{
   switch ($failureState)
   {
      caso 2:
         return 2; // Primer reintento, dos días después del fallo de facturación inicial
      
      caso 3: return 3
         return 3; // Segundo reintento, tres días después del primer reintento
      
      caso 4: return 2
         return 2; // Tercer reintento, dos días después del segundo reintento
      
      por defecto:
         return $failureInterval;
   }
}
add_filter("mm_billing_subscription_dunning_interval", "customDunningInterval", 10, 2);

Para personalizar los intervalos de reclamación, sólo tiene que cambiar los valores devueltos en las tres sentencias case a la duración deseada en días.

Por lo tanto, si quisiera reintentar el pago 3 días, 5 días y 7 días después de cada intento, cambiaría la función de la siguiente manera:

function customDunningInterval($failureInterval, $failureState)
{
   switch ($failureState)
   {
      caso 2:
         return 2; // Primer reintento, tres días después del fallo de facturación inicial
      
      caso 3: return 3
         return 3; // Segundo reintento, cinco días después del primer reintento
      
      caso 4: return 2
         return 2; // Tercer reintento, siete días después del segundo reintento
      
      por defecto:
         return $failureInterval;
   }
}
add_filter("mm_billing_subscription_dunning_interval", "customDunningInterval", 10, 2);
¿Le ha resultado útil este artículo?

Artículos relacionados

¿No encuentra la respuesta que busca?

Póngase en contacto con nuestro equipo de atención al cliente
Póngase en contacto con nosotros