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.
Référence du filtre MemberMouse
The following is a list of all of the MemberMouse filters, a description of when they’re executed, and information on the data that will be passed to any function hooked into the filter.
Intervalle d'analyse de la facturation
mm_intervalle_de_facturation
MemberMouse 3.0+
MemberMouse exécute périodiquement un WP-Cron qui recherche les abonnements devant être refacturés et les met en file d'attente en vue de leur traitement par le système de facturation local. Par défaut, les analyses sont effectuées toutes les quinze minutes. Ce filtre vous permet de modifier l'intervalle entre les analyses, ce qui peut s'avérer utile pour optimiser les performances de votre site.
Le plugin passe un seul argument $scanInterval à votre fonction, un nombre entier représentant le nombre de minutes par défaut entre les balayages. Votre fonction doit renvoyer un nombre entier représentant le nombre de minutes souhaité entre les analyses. Par exemple, la fonction suivante recherche les abonnements prêts à être facturés toutes les cinq minutes :
function customBillingScanInterval($scanInterval)
{
retourne 5 ;
}
add_filter("mm_billing_scan_interval", "customBillingScanInterval", 10, 2) ;
Intervalle de relance de l'abonnement
mm_billing_subscription_dunning_intervalle
MemberMouse 3.0+
Si un abonnement n'est pas facturé à la date prévue, MemberMouse effectue trois tentatives supplémentaires pour recouvrer le paiement. Ce filtre vous permet de contrôler l'intervalle entre les tentatives.
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.
Accès en bloc
mm_block_access
Ce filtre est appliqué après que MemberMouse a déterminé que le visiteur actuel a accès au contenu, et vous permet de bloquer sélectivement l'accès au contenu protégé.
MemberMouse transmet une valeur booléenne $blockAccess à votre fonction, indiquant si elle bloque l'accès au contenu par défaut. Votre fonction doit renvoyer un booléen indiquant si MemberMouse doit bloquer l'accès au contenu.
Par exemple, pour empêcher tous les membres d'accéder à des contenus protégés :
function blockMemberAccess($blockAccess)
{
return true ;
}
add_filter("mm_block_access", "blockMemberAccess", 10, 2) ;
Contourner la protection du contenu
mm_bypass_content_protection
This filter is applied after MemberMouse has determined the current visitor doesn’t have access to the content, and allows you to selectively bypass content protection.
MemberMouse transmet une valeur booléenne $allowAccess à votre fonction, indiquant si elle doit permettre l'accès au contenu par défaut. Votre fonction doit renvoyer un booléen indiquant si MemberMouse doit autoriser l'accès au contenu.
Par exemple, l'option suivante permet à tous les membres auxquels a été attribué le droit de vote d'avoir accès à l'information sur les droits d'auteur. Contributeur l'accès à toutes les pages et à tous les messages protégés :
function allowAccessForContributors($allowAccess)
{
if (current_user_can("contributor"))
{
return true ;
}
else
{
return $allowAccess ;
}
}
add_filter("mm_bypass_content_protection", "allowAccessForContributors", 10, 2) ;
Veuillez noter que si ce filtre permet d'accéder à des pages et à des messages qui seraient autrement inaccessibles, il n'a pas d'incidence sur l'analyse des SmartTags de décision.
Redirection de la connexion
mm_login_redirect
Ce filtre est appliqué avant que MemberMouse n'exécute son comportement de redirection de connexion par défaut, à savoir configuré dans les paramètres de la page d'accueil des membres. Renvoyer une URL pour indiquer que MemberMouse doit rediriger l'utilisateur vers cette URL. Renvoyer une chaîne vide pour indiquer que MemberMouse doit utiliser ses propres règles internes pour déterminer où l'utilisateur doit être envoyé.
The object passed to your function contains the URL MemberMouse will redirect the user to if you don’t return an override URL and a user object containing data about the logged in user.
Si le nom de l'objet dans votre fonction est $infoObj then you’ll access the two data elements as follows:
$infoObj->currentUrl
$infoObj->user
Descripteur de la déclaration de stripe
mm_stripe_billing_statement_descriptor
Lorsque MemberMouse lance une refacturation, il envoie diverses données descriptives sur la charge. Le descripteur de relevé est ce qui sera affiché au client sur sa facture de carte de crédit, et il est également visible dans Stripe. Ce filtre vous permet de personnaliser le descripteur de relevé pour les transactions de refacturation.
Veuillez noter que la longueur totale maximale du descripteur de relevé est de 22 caractères, et que l'envoi d'une chaîne plus longue entraînera l'échec du traitement du paiement. De plus, les données que vous envoyez peuvent être tronquées. Stripe crée finalement un "descripteur de relevé calculé" en ajoutant le descripteur que vous envoyez au descripteur abrégé spécifié dans la section Tableau de bord Stripe Paramètres publicsmais la longueur maximale de cette chaîne calculée est également de 22 caractères, et tout ce qui dépasse cette longueur sera rejeté.
Pour calculer la longueur maximale du contenu qui sera affiché, utilisez la formule suivante :
longueur maximale affichée = 22 - (longueur du descripteur raccourci + 2)
MemberMouse transmet deux paramètres à votre fonction. Le premier est $descripteur qui est une chaîne contenant les informations que MemberMouse enverra si elle n'est pas modifiée. La seconde est 1TP4Commande qui est un objet de classe standard contenant les données de l'ordre MemberMouse, que vous pouvez utiliser pour construire le descripteur de déclaration.
Here’s an example:
add_filter("mm_stripe_billing_statement_descriptor", function($descriptor, $order)
{
$descriptor = "Commande # : " . $order->orderNumber ;
$maxLengthDescriptor = substr($descriptor,0,22) ;
return $maxLengthDescriptor ;
}, 1, 2) ;
Si votre descripteur abrégé est ABC vos clients devraient voir quelque chose comme cela sur leurs relevés de carte de crédit :
ABC* Référence # : 10043
Ce filtre ne peut agir que sur les re-facturations, et non sur les paiements initiaux.
Stripe PaymentIntent Description
mm_stripe_paymentintent_description
Un autre élément de données envoyé à Stripe avec les factures est la description, que ce filtre vous permet de personnaliser. La description est l'une des colonnes qui s'affichent lorsque vous sélectionnez Paiements dans Stripe Dashboard. La longueur maximale de ce champ est de 350 caractères.
MemberMouse transmet deux paramètres à votre fonction. Le premier est $description qui est une chaîne contenant les informations que MemberMouse enverra si elle n'est pas modifiée. La seconde est 1TP4Commande qui est un objet de classe standard contenant les données de l'ordre MemberMouse, que vous pouvez utiliser pour construire la description.
Par exemple, pour attribuer à ce champ la valeur Order# 1234, Item : Adhésion numérique vous pouvez utiliser la fonction suivante dans votre plugin :
add_filter('mm_stripe_paymentintent_description', function($description, $order)
{
$description = "Order # " . $order->orderNumber;
if (isset($order->orderProducts) && is_array($order->orderProducts))
{
$description .= ", Item: " . array_pop($order->orderProducts)->description;
}
return $description;
}, 1, 2);
This filter can only act on rebills, not initial payments. To see all the data that’s possible to access on the 1TP4Commande voir cet objet exemple d'objet de commande.
Filtres par défaut de MemberMouse
Il s'agit de filtres inclus dans le plugin qui peuvent être remplacés dans votre code personnalisé à l'aide de la fonction remove_filter pour mettre en œuvre vos propres filtres.
Validateur de la force du mot de passe
mm_password_strength_validator
À partir de la version 2.2.9, MemberMouse prend en charge l'ajout d'un filtre de validation de mot de passe personnalisé. Cela permet d'évaluer le mot de passe en fonction d'exigences personnalisées. Par défaut, MemberMouse associe un filtre de base qui vérifie que le mot de passe comporte au moins 8 caractères. Les développeurs ont la possibilité d'ajouter un filtre supplémentaire qui sera appliqué en conjonction avec le filtre par défaut, ou de supprimer le filtre par défaut et de le remplacer par un filtre personnalisé.
The example below shows the steps to remove the default filter and replace it with a custom filter. This can be added into the theme’s function.php file, but we recommended that if you take this route, you use a Thème enfant pour éviter que votre code ne soit perdu en cas de mise à jour du thème.
//remove the default filter
remove_filter('mm_password_strength_validator',array('MM_UserHooks',"passwordStrengthValidator"));
//add a filter that enforces that passwords are at least 8 characters and contain an uppercase letter, a number, and a special character
add_filter('mm_password_strength_validator', function($passwordData)
{
if (is_object($passwordData) && isset($passwordData->data) && !preg_match('/^(?=.*[!@#$%^&*-])(?=.*[0-9])(?=.*[A-Z]).{8,20}$/', $passwordData->data))
{
$passwordData->type = "error";
$passwordData->errors[] = "Password must contain an uppercase character, a special character, and a number";
}
return $passwordData;
}, 10, 1);

