fbpx

MemberMouse WordPress-Filter

Filter sind Funktionen, die WordPress an bestimmten Punkten der Ausführung durchläuft, bevor eine Aktion mit den Daten durchgeführt wird. MemberMouse definiert einen eigenen Satz von Filtern, die Sie verwenden können, um den Ablauf der Ausführung in MemberMouse zu steuern, bevor bestimmte Aktionen ausgeführt werden.

Hier ist ein einfaches Beispiel:

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

In diesem Beispiel verwenden wir die add_filter() Methode, um anzuzeigen, dass die  customContentProtection() Methode sollte aufgerufen werden, wenn MemberMouse die  mm_Umgehung_des_Inhalt_Schutzes Filter.

Um mehr über die Arbeit mit der WordPress Action API zu erfahren diesen Artikel lesen.

MemberMouse-Filter-Referenz

Nachfolgend finden Sie eine Liste aller MemberMouse-Filter, eine Beschreibung, wann sie ausgeführt werden, und Informationen zu den Daten, die an eine mit dem Filter verknüpfte Funktion übergeben werden.

Abrechnungs-Scan-Intervall

mm_abrechnung_scan_intervall

MitgliedMaus 3.0+

MemberMouse führt periodisch eine WP-Cron Aufgabe, die nach Abonnements sucht, für die eine erneute Rechnungsstellung fällig ist, und diese zur Verarbeitung durch das lokale Abrechnungssystem in die Warteschlange stellt. Standardmäßig werden die Überprüfungen alle fünfzehn Minuten durchgeführt. Mit diesem Filter können Sie das Intervall zwischen den Überprüfungen ändern, was bei der Optimierung der Leistung Ihrer Website hilfreich sein kann.

Das Plugin übergibt ein einziges Argument $scanIntervall an Ihre Funktion, eine ganze Zahl, die die Standardanzahl von Minuten zwischen den Scans angibt. Ihre Funktion sollte eine ganze Zahl zurückgeben, die die gewünschten Minuten zwischen den Überprüfungen angibt. Die folgende Funktion sucht z. B. alle fünf Minuten nach Abonnements, die für die Rechnungsstellung bereit sind:

function customBillingScanIntervall($scanIntervall)
{
   return 5;
}
add_filter("mm_billing_scan_interval", "customBillingScanInterval", 10, 2);

Abonnement Mahnungsintervall

mm_abrechnung_abonnement_mahnung_intervall

MitgliedMaus 3.0+

Wenn ein Abonnement nicht zum geplanten Termin abgerechnet wird, unternimmt MemberMouse drei weitere Versuche, die Zahlung einzuziehen. Mit diesem Filter können Sie das Intervall zwischen den Versuchen steuern.

MemberMouse übergibt zwei Argumente an Ihre Funktion. Das erste ist eine ganze Zahl $failureIntervall die die Standardanzahl von Tagen vor dem nächsten Versuch darstellt. Die zweite ist eine ganze Zahl $failureState der den jeweiligen Status der fehlgeschlagenen Rechnungsstellung angibt. Derzeit gibt es drei Fehlerzustände: 2, 3 und 4, die den zweiten, dritten bzw. letzten Versuch, die Zahlung einzuziehen, darstellen.

Ihre Funktion sollte eine ganze Zahl zurückgeben, die die Anzahl der Tage angibt, die bis zum nächsten Versuch vergehen sollen. Hier ist ein Beispiel, das die Standard-Mahnintervalle nachbildet:

function customDunningInterval($failureInterval, $failureState)
{
   switch ($failureState)
   {
      Fall 2:
         return 2; // Erster Wiederholungsversuch, zwei Tage nach der ersten fehlgeschlagenen Rückbuchung
      
      case 3:
         return 3; // Zweiter Wiederholungsversuch, drei Tage nach dem ersten Wiederholungsversuch
      
      Fall 4:
         return 2; // Dritter Wiederholungsversuch, zwei Tage nach dem zweiten Wiederholungsversuch
      
      Standard:
         return $failureInterval;
   }
}
add_filter("mm_billing_subscription_dunning_interval", "customDunningInterval", 10, 2);

Um die Mahnungsintervalle anzupassen, können Sie einfach die in den drei Case-Anweisungen zurückgegebenen Werte auf die gewünschte Länge in Tagen ändern.


Zugang blockieren

mm_block_access

Dieser Filter wird angewendet, nachdem MemberMouse festgestellt hat, dass der aktuelle Besucher Zugriff auf den Inhalt hat, und ermöglicht es Ihnen, den Zugriff auf geschützte Inhalte selektiv zu sperren.

MemberMouse übergibt einen booleschen Wert $blockAccess zu Ihrer Funktion hinzufügen, die angibt, ob der Zugriff auf den Inhalt standardmäßig blockiert wird. Ihre Funktion sollte einen booleschen Wert zurückgeben, der angibt, ob MemberMouse den Zugriff auf den Inhalt blockieren sollte.

Zum Beispiel, um allen Mitgliedern den Zugriff auf geschützte Inhalte zu verwehren:

function blockMemberAccess($blockAccess)
{
   return true;
}
add_filter("mm_block_access", "blockMemberAccess", 10, 2);

Umgehung des Inhaltsschutzes

mm_Umgehung_des_Inhalt_Schutzes

Dieser Filter wird angewendet, nachdem MemberMouse festgestellt hat, dass der aktuelle Besucher keinen Zugriff auf den Inhalt hat, und ermöglicht es Ihnen, den Inhaltsschutz selektiv zu umgehen.

MemberMouse übergibt einen booleschen Wert $allowAccess zu Ihrer Funktion hinzufügen, um anzugeben, ob der Zugriff auf den Inhalt standardmäßig gewährt wird. Ihre Funktion sollte einen Booleschen Wert zurückgeben, der angibt, ob MemberMouse den Zugriff auf den Inhalt erlauben soll.

So können beispielsweise alle Mitglieder, denen das Recht zugewiesen wurde Beitragende Rollenzugriff auf alle geschützten Seiten und Beiträge:

function allowAccessForContributors($allowAccess)
{
    if (current_user_can("contributor"))
    {
        return true;
    }
    sonst
    {
        return $allowAccess;
    }
}
add_filter("mm_bypass_content_protection", "allowAccessForContributors", 10, 2);

Bitte beachten Sie, dass dieser Filter zwar den Zugang zu Seiten und Beiträgen ermöglicht, die andernfalls unzugänglich wären, dass er aber keinen Einfluss auf die Analyse von Decision SmartTags hat.


Anmeldung umleiten

mm_login_redirect

Dieser Filter wird angewandt, bevor MemberMouse sein standardmäßiges Umleitungsverhalten für die Anmeldung ausführt, das lautet konfiguriert in den Einstellungen der Mitglieder-Homepage. Geben Sie eine URL zurück, um anzugeben, dass MemberMouse den Benutzer an diese URL weiterleiten soll. Geben Sie eine leere Zeichenkette zurück, um anzugeben, dass MemberMouse seine eigenen internen Regeln verwenden soll, um zu bestimmen, wohin der Benutzer weitergeleitet werden soll.

Das Objekt, das an Ihre Funktion übergeben wird, enthält die URL, an die MemberMouse den Benutzer weiterleitet, wenn Sie keine überschreibende URL zurückgeben, sowie ein Benutzerobjekt mit Daten über den angemeldeten Benutzer.
Wenn der Name des Objekts in Ihrer Funktion $infoObj dann greifen Sie wie folgt auf die beiden Datenelemente zu:

$infoObj->aktuelleUrl
$infoObj->Benutzer

Stripe Statement Deskriptor

mm_stripe_billing_statement_descriptor

Wenn MemberMouse eine Rückbuchung veranlasst, werden verschiedene beschreibende Daten über die Belastung gesendet. Der Abrechnungsdeskriptor wird dem Kunden auf seiner Kreditkartenrechnung angezeigt und ist auch in Stripe sichtbar. Mit diesem Filter können Sie den Abrechnungsdeskriptor für Abrechnungstransaktionen anpassen.

Bitte beachten Sie, dass die maximale Gesamtlänge des Anweisungsdeskriptors 22 Zeichen beträgt und das Senden einer längeren Zeichenfolge dazu führt, dass die Zahlung nicht verarbeitet werden kann. Außerdem können die von Ihnen gesendeten Daten abgeschnitten werden. Stripe erstellt schließlich einen "berechneten Abrechnungsdeskriptor", indem es den von Ihnen gesendeten Deskriptor an den in der Option "Verkürzter Deskriptor" angegebenen Deskriptor anhängt. Stripe Dashboard Öffentliche Einstellungenaber die maximale Länge dieser berechneten Zeichenfolge beträgt ebenfalls 22 Zeichen, und alles darüber hinausgehende wird verworfen.

Um die maximale Länge des angezeigten Inhalts zu berechnen, verwenden Sie die folgende Formel:

max. angezeigte Länge = 22 - (Länge des gekürzten Deskriptors + 2)

MemberMouse übergibt zwei Parameter an Ihre Funktion. Der erste ist $-Deskriptor ist eine Zeichenkette, die die Informationen enthält, die MemberMouse sendet, wenn sie nicht geändert wird. Die zweite ist 1TP4Bestellung das ein Standardklassenobjekt ist, das MemberMouse-Bestelldaten enthält, die Sie bei der Konstruktion des Anweisungsdeskriptors verwenden können. 

Hier ist ein Beispiel: 

add_filter("mm_stripe_billing_statement_descriptor", function($descriptor, $order)
{

   $descriptor = "Bestellung #: " . $order->Bestellnummer;
   $maxLengthDescriptor = substr($descriptor,0,22);
   Rückgabe $maxLengthDescriptor;
}, 1, 2);

Wenn Ihr gekürzter Deskriptor lautet ABC Ihre Kunden sollten so etwas auf ihren Kreditkartenabrechnungen sehen:

ABC* Bestellung #: 10043

Dieser Filter kann nur auf Erstattungsrechnungen wirken, nicht auf erste Zahlungen. Um alle Daten zu sehen, auf die Sie auf der Seite 1TP4Bestellung Objekt, sehen Sie dieses Musterauftragsobjekt.


Stripe PaymentIntent Beschreibung

mm_stripe_paymentintent_description

Ein weiterer Teil der Daten, die mit den Rückrechnungen an Stripe gesendet werden, ist die Beschreibung, die Sie mit diesem Filter anpassen können. Die Beschreibung ist eine der Spalten, die angezeigt wird, wenn Sie die Option Zahlungen in Stripe Dashboard. Die maximale Länge dieses Feldes beträgt 350 Zeichen.

MemberMouse übergibt zwei Parameter an Ihre Funktion. Der erste ist $Beschreibung ist eine Zeichenkette, die die Informationen enthält, die MemberMouse sendet, wenn sie nicht geändert wird. Die zweite ist 1TP4Bestellung das ein Standardklassenobjekt ist, das MemberMouse-Bestelldaten enthält, die Sie bei der Erstellung der Beschreibung verwenden können. 

Um dieses Feld zum Beispiel auf Bestellung# 1234, Artikel: Digitale Mitgliedschaft könnten Sie die folgende Funktion in Ihrem Plugin verwenden:

add_filter('mm_stripe_paymentintent_description', function($description, $order)
{
   $description = "Bestellung # " . $order->Bestellnummer;
   if (isset($order->BestellungProdukte) && is_array($order->BestellungProdukte))
   {
      $description .= ", Artikel: " . array_pop($order->orderProducts)->description;
   }
   return $description;
}, 1, 2);

Dieser Filter kann nur auf Erstattungsrechnungen wirken, nicht auf erste Zahlungen. Um alle Daten zu sehen, auf die Sie auf der Seite 1TP4Bestellung Objekt, sehen Sie dieses Musterauftragsobjekt.


Standard-MemberMouse-Filter

Diese Filter sind im Plugin enthalten und können in Ihrem eigenen Code überschrieben werden, indem Sie entfernen_filter um Ihre eigenen verwandten Filter zu implementieren.

Passwortstärke-Prüfer

mm_password_strength_validator

Ab Version 2.2.9 unterstützt MemberMouse die Hinzufügung eines benutzerdefinierten Passwort-Validierungsfilters. Dadurch kann das Kennwort auf der Grundlage benutzerdefinierter Anforderungen ausgewertet werden. Standardmäßig fügt MemberMouse einen grundlegenden Filter hinzu, der sicherstellt, dass das Kennwort aus mindestens 8 Zeichen besteht. Entwickler haben die Möglichkeit, einen zusätzlichen Filter hinzuzufügen, der zusammen mit dem Standardfilter angewendet wird, oder den Standardfilter zu entfernen und durch einen benutzerdefinierten Filter zu ersetzen.

Das folgende Beispiel zeigt die Schritte zum Entfernen des Standardfilters und zum Ersetzen durch einen benutzerdefinierten Filter. Dieser kann in die Datei function.php des Themes eingefügt werden, aber wir empfehlen, dass Sie, wenn Sie diesen Weg wählen, eine Kind-Thema um zu vermeiden, dass Ihr Code bei einem Theme-Update verloren geht.

//Entfernen des Standardfilters
remove_filter('mm_password_strength_validator',array('MM_UserHooks', "passwordStrengthValidator"));

//Fügen Sie einen Filter hinzu, der erzwingt, dass Kennwörter mindestens 8 Zeichen lang sind und einen Großbuchstaben, eine Zahl und ein Sonderzeichen enthalten
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))
   {
      $passwortDaten->Typ = "Fehler";
      $passwordData->errors[] = "Passwort muss einen Großbuchstaben, ein Sonderzeichen und eine Zahl enthalten";
   }
   return $passwordData;
}, 10, 1);
War dieser Artikel hilfreich?

Verwandte Artikel