1. Accueil
  2. Base de connaissances
  3. Conseils, astuces et personnalisations
  4. Conseils et astuces
  5. Personnalisation du calendrier des tentatives de refacturation des paiements en retard

Personnalisation du calendrier des tentatives de refacturation des paiements en retard

MemberMouse 3.0+

NOTE : With payment services that don’t support card-on-file functionality (i.e. PayPal, Authorize.net), MemberMouse has no control over the recurring billing process and n'est pas traiter automatiquement les paiements en retard.

Par défaut, MemberMouse dispose d'un processus de relance intégré pour le recouvrement des paiements en retard. Si un abonnement n'est pas facturé à la date prévue, le Centre pour les membres effectue trois tentatives supplémentaires en l'espace d'une semaine pour recouvrer le paiement. MemberMouse envoie également un message configurable de notification de retard de paiement after each failed payment. If you’d like to review a detailed description of this process, go to our article Traitement automatisé des retards de paiement.

Vous pouvez ajuster les délais entre chaque tentative de facturation, mais les trois tentatives ne peuvent pas être modifiées. Il s'agit d'un nombre fixe.

Bien que cet intervalle de collecte fonctionne très bien par défaut, il se peut que vous souhaitiez personnaliser les jours qui s'écoulent entre une tentative de collecte et la durée de votre processus de collecte global. Il est possible de personnaliser cette durée en utilisant un filtre WordPress, mm_billing_subscription_dunning_intervalle.

Les filtres sont des fonctions par lesquelles WordPress fait passer les données à certains moments de l'exécution, juste avant d'effectuer une action sur les données. MemberMouse définit son propre ensemble de filtres que vous pouvez utiliser pour contrôler le flux d'exécution dans MemberMouse avant que certaines actions ne soient effectuées.

Here’s a basic example:

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

In this example, we’re using the add_filter() pour indiquer que la méthode  customContentProtection() doit être appelée lorsque MemberMouse applique la méthode  mm_bypass_content_protection filtre.

To learn more about working with WordPress’ Action API lire cet article.

Personnalisation des intervalles de relance

MemberMouse transmet deux arguments à votre fonction. Le premier est un entier $failureIntervalle qui représente le nombre de jours par défaut avant la prochaine tentative. Le deuxième est un nombre entier $failureState qui représente l'état d'échec particulier de la facturation. Il existe actuellement trois états d'échec : 2, 3 et 4, qui représentent respectivement la deuxième, la troisième et la dernière tentative de recouvrement.

Your function should return an integer representing the number of days that should be allowed to elapse before the next attempt. Here’s an example that replicates the default dunning intervals:

function customDunningInterval($failureInterval, $failureState)
{
   switch ($failureState)
   {
      case 2 :
         return 2 ; // Première tentative, deux jours après l'échec de la refacturation initiale.
      
      case 3 :
         return 3 ; // Deuxième tentative, trois jours après la première tentative.
      
      cas 4 : return 2 ; // Troisième tentative, deux jours après la deuxième tentative
         return 2 ; // Troisième tentative, deux jours après la deuxième.
      
      par défaut :
         return $failureInterval ;
   }
}
add_filter("mm_billing_subscription_dunning_interval", "customDunningInterval", 10, 2) ;

Pour personnaliser les intervalles de relance, il vous suffit de modifier les valeurs renvoyées dans les trois instructions de cas pour obtenir la durée souhaitée en jours.

Ainsi, si vous souhaitez réessayer le paiement 3 jours, 5 jours et 7 jours après chaque tentative, vous devez modifier la fonction de la manière suivante :

function customDunningInterval($failureInterval, $failureState)
{
   switch ($failureState)
   {
      case 2 :
         return 2 ; // Première tentative, trois jours après l'échec de la refacturation initiale.
      
      case 3 :
         return 3 ; // Deuxième tentative, cinq jours après la première tentative.
      
      cas 4 : return 2 ; // Troisième tentative, sept jours après la deuxième tentative
         return 2 ; // Troisième tentative, sept jours après la deuxième.
      
      par défaut :
         return $failureInterval ;
   }
}
add_filter("mm_billing_subscription_dunning_interval", "customDunningInterval", 10, 2) ;
Cet article a-t-il été utile ?

Articles connexes

Vous ne trouvez pas la réponse que vous cherchez ?

Contactez notre équipe chargée de la réussite des clients
Contactez nous !