W mojej konfiguracji mam niestandardowe role i chcę móc automatycznie zmieniać rolę użytkownika za pomocą funkcji. Powiedz, że użytkownik A pełni rolę SUBSKRYBENTA. Jak zmienić go na EDYTOR? Dodając rolę po prostu:
add_role( $role_name , $role_display_name , array( 'read' => true,
'edit_posts' => false,
'delete_posts' => false, ));
Co powiesz na zmianę roli? Czy istnieje coś takiego:
change_role($old_role, $new_role);
AKTUALIZACJA: Myślę, że ten zrobi:
$wp_user_object = new WP_User($current_user->ID);
$wp_user_object->set_role('editor');
źródło
remove_role()
iadd_rule()
zapisać dane w bazie danych?Należy pamiętać, że istnieje prostszy sposób zmiany roli użytkownika, co jest szczególnie przydatne, gdy nie znasz bieżącej roli użytkownika:
->set_role()
Przykład:
źródło
Aby ekstrapolować odpowiedź t31os, możesz uderzyć coś takiego w pliku funkcji, jeśli chcesz to zrobić programowo w oparciu o warunek
źródło
$blogID
jest niewłaściwe.get_users()
i tak użyje bieżącego ID bloga.Możesz zmienić rolę dowolnego użytkownika, edytując profil użytkowników. Nie trzeba dodawać żadnego kodu, jeśli ta opcja jest już wbudowana w WordPress.
Lub
Możesz użyć kodu, aby zmienić wszystkich obecnych użytkowników z rolą subskrybenta na edytor:
źródło
Jest do tego funkcja WordPress!
Myślę, że najlepiej używać funkcji WordPress, jeśli i kiedy są one dostępne.
Możesz użyć funkcji wp_insert_user () , gdzie jednym z argumentów, które musisz podać, jest $ userdata ['rola]. W tym argumencie możesz określić rolę, w którą chcesz zmienić użytkownika.
źródło
musisz dołączyć /wp-include/registration.php, jeśli używasz kodu jako samodzielnego skryptu. Pozdrawiam Uwe
źródło
Możesz użyć wp_update_user . Twój kod powinien wyglądać następująco:
źródło
źródło
Wiem, że to bardzo stary post, ale odkryłem, że role użytkowników są przechowywane w
wp_usermeta
tabeli z kluczemwp_capabilities
wmeta_key
kolumnie.Jeśli chcesz zmienić rolę użytkownika, możesz to zrobić za pomocą tej prostej funkcji.
Istnieją dwa sposoby korzystania z tej funkcji.
Jeśli chcesz zmienić rolę dla pojedynczej roli.
Lub jeśli chcesz dodać wiele ról do użytkownika, użyj roli jako tablicy w drugim parametrze.
Powodzenia.
źródło