Antworten:
Auf diese Weise können Plugins die Standardrolle problemlos entführen, während sie aktiv sind.
// Hijack the option, the role will follow!
add_filter('pre_option_default_role', function($default_role){
// You can also add conditional tags here and return whatever
return 'subscriber'; // This is changed
return $default_role; // This allows default
});
Ich benutze es, um sicherzustellen, dass einige Plugins, die Abonnentenrollen benötigen, es erhalten, unabhängig davon, ob der Administrator versucht, es zu ändern :)
Grüße .
Wenn ein neuer Benutzer über die wp_insert_user()
Funktion erstellt wird, wird die Rolle mit der set_role()
Methode der User
Klasse festgelegt und auf die Standardbenutzerrolle festgelegt.
Die Standardbenutzerrolle wird aus der Datenbank abgerufen get_option('default_role')
und kann über das Admin-Dashboard unter Einstellungen> Allgemein> Neue Benutzerstandardrolle festgelegt werden.
Wenn Sie Ihre neue Rolle registriert haben (mithilfe von add_role()
, sollte sie dort zur Auswahl stehen.
Alternativ können Sie für mehr Kontrolle die Aktionen user_register
oder profile_update
einbinden, set_role
um sie dann bedingt zu aktivieren, oder wie Sie möchten.
Nachdem Sie den Benutzer mit erstellt haben
$user_id = wp_create_user( $user_login, $pas1, $user_email );
Erstellen Sie das Benutzerobjekt
$user = new WP_User($user_id);
Stellen Sie dann die Rolle ein
$user->set_role('editor');
Sie können die Rolle "Editor" durch eine der folgenden Funktionen ersetzen:
Administrator
Editor
Autor
Mitwirkender
Teilnehmer
Fügen Sie es in die Pluging- oder functions.php-Datei Ihres Themas ein
//Make 'Client' a default role
update_option('default_role','client');