Ich habe benutzerdefinierte Rollen in meinem Setup und möchte in der Lage sein, die Rolle eines Benutzers durch eine Funktion automatisch zu ändern. Angenommen, Benutzer A hat eine ABONNENT-Rolle. Wie ändere ich sie in EDITOR? Beim Hinzufügen einer Rolle gehen wir einfach wie folgt vor:
add_role( $role_name , $role_display_name , array( 'read' => true,
'edit_posts' => false,
'delete_posts' => false, ));
Wie wäre es mit einem Rollenwechsel? Gibt es so etwas wie:
change_role($old_role, $new_role);
UPDATE: Ich denke, dieser wird tun:
$wp_user_object = new WP_User($current_user->ID);
$wp_user_object->set_role('editor');
quelle
remove_role()
undadd_rule()
Daten in der Datenbank speichern?Beachten Sie nur, dass es eine einfachere Möglichkeit gibt, die Benutzerrolle zu ändern. Dies ist besonders hilfreich, wenn Sie die aktuelle Rolle des Benutzers nicht kennen:
->set_role()
Beispiel:
quelle
Um die Antwort von t31os zu extrapolieren, können Sie so etwas in Ihre Funktionsdatei einfügen, wenn Sie dies programmgesteuert basierend auf einer Bedingung tun möchten
quelle
$blogID
ist falsch.get_users()
Standardmäßig wird die aktuelle Blog-ID trotzdem verwendet.Sie können die Rolle eines Benutzers ändern, indem Sie das Benutzerprofil bearbeiten. Sie müssen keinen weiteren Code hinzufügen, wenn diese Option bereits in WordPress integriert ist.
Oder
Sie können Code verwenden, um alle aktuellen Benutzer mit der Abonnentenrolle zum Editor zu ändern:
quelle
Dafür gibt es eine WordPress-Funktion!
Ich denke, es ist am besten, WordPress-Funktionen zu verwenden, wenn und wann sie verfügbar sind.
Sie können die Funktion wp_insert_user () verwenden. Eines der Argumente, die Sie angeben müssen, ist $ userdata ['role']. In diesem Argument können Sie die Rolle angeben, in die Sie den Benutzer ändern möchten.
quelle
Sie müssen die Datei /wp-includes/registration.php einschließen, wenn Sie den Code als eigenständiges Skript verwenden. Grüße Uwe
quelle
Sie können wp_update_user verwenden . Ihr Code sollte so aussehen:
quelle
quelle
Ich weiß, es ist ein sehr alter Beitrag, aber ich habe festgestellt, dass die Rollen für Benutzer in
wp_usermeta
Tabelle mit Schlüsselwp_capabilities
inmeta_key
Spalte gespeichert sind .Wenn Sie die Benutzerrolle ändern möchten, können Sie dies mit dieser einfachen Funktion tun.
Diese Funktion kann auf zwei Arten verwendet werden.
Wenn Sie die Rolle für eine einzelne Rolle ändern möchten.
Wenn Sie dem Benutzer mehrere Rollen hinzufügen möchten, verwenden Sie die Rollen als Array im zweiten Parameter.
Viel Glück.
quelle