Neuregistrierung mit s2member und einer selbstdefinierten Standardrolle

Der Wunsch war, mit s2Member eine Neuregistrierung zu ermöglichen, und zwar ohne Beschränkung einer Zahlung mittels PayPal und ohne der automatischen Rollenvorgabe "Abonnent". Und genau hier liegt die Schwierigkeit. Denn von Hause aus stuft s2Member Neuregistrierungen in der Rolle als "Abonnent" (Subscriber) ein. Und in der kostenlosen Variante lässt sich dies leider nicht ändern. Unter den WordPress eigenen Einstellung, wo sich diese Änderung normalerweise vornehmen lässt, ist dies nicht mehr möglich, da hier s2Member die Kontrolle übernommen hat. Jegliche Veränderung der Standardrolle bleibt somit ohne Wirkung.

Lösung mit einem Filter Hook

Wichtig war erst einmal, dass eventuelle Code-Anpassungen nicht durch zukünftig vorgenommene Updates überschrieben werden können. Hier lautet die Empfehlung von s2Member, eine Datei namens "s2-hacks.php" anzulegen und diese in das Verzeichnis "/wp-content/mu-plugins" zu packen. In der Regel existiert dieses Verzeichnis nicht und muss erstellt werden.

Das "mu-plugins"-Verzeichnis unter WordPress

Das "mu-plugins"-Verzeichnis beherbergt Dateien, die WordPress sofort ausführt. Quasi als wenn diese zum WordPress-Stamm gehören würden. "mu" steht in diesem Falle für "must-use". Also einfach eine Datei in diesen Ordner packen und schon wird diese ausgeführt. Der Code, um die Standardrolle bei einer Neuregistrierung von "Abonnent" in "Mitarbeiter" zu ändern, lautet wie folgt:


<?php
/* WP wird gezwungen, Neuregistrierung mit der Rolle "Mitarbeiter" zu versehen statt "Abonnent" */
add_filter("ws_plugin__s2member_force_default_role", "default_role",10,1);
function default_role($role){
$return = 'contributor';
return $return;
}
?>
<?php
/* Schutz vor Überschreibung bei Update */
add_filter("ws_plugin__s2member_lock_roles_caps", "__return_true");
?>

Die Bezeichnung 'contibutor' steht hier für die Rolle 'Mitarbeiter' und der Filter Hook zwingt WordPress diese Rolle als Standard zu übernehmen. Sobald Ihr die Datei mit dem Code in das "mu-plugins"-Verzeichnis kopiert habt, wird diese auch schon ausgeführt und die Änderung ist in den WordPress Einstellungen sofort ersichtlich. Jetzt bekommt jede Neuregistrierung automatisch den Status eines Mitarbeiters.

[fb_share]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.