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 : Avec les services de paiement qui ne prennent pas en charge la fonctionnalité de carte sur fichier (c'est-à-dire PayPal, Authorize.net), MemberMouse n'a aucun contrôle sur le processus de facturation récurrente. 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 après chaque échec de paiement. Si vous souhaitez obtenir une description détaillée de ce processus, consultez notre 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.

Voici un exemple de base :

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

Dans cet exemple, nous utilisons le add_filter() pour indiquer que la méthode  customContentProtection() doit être appelée lorsque MemberMouse applique la méthode  mm_bypass_content_protection filtre.

Pour en savoir plus sur l'utilisation de l'API d'action de WordPress 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.

Votre fonction doit renvoyer un nombre entier représentant le nombre de jours qui doivent s'écouler avant la prochaine tentative. Voici un exemple qui reproduit les intervalles de relance par défaut :

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 !