Cum setez programatic rolul implicit pentru utilizatorii noi?
Aș dori ca noii utilizatori ai blogului să aibă un rol personalizat, în loc de Subscriber (Abonat). Cum pot seta acest lucru programatic? Știu că poate fi modificat din backend.

Aceasta permite pluginurilor să preia ușor rolul implicit atunci când sunt active.
// Preia opțiunea, rolul va urma!
add_filter('pre_option_default_role', function($default_role){
// Poți adăuga și condiții aici și să returnezi orice
return 'subscriber'; // Acesta este modificat
return $default_role; // Aceasta permite implicit
});
Eu îl folosesc pentru a mă asigura că unele pluginuri care necesită roluri de subscriber le primesc indiferent de încercările Administratorului de a schimba :)
Cu stimă.

Când un nou utilizator este creat prin funcția wp_insert_user()
, rolul este setat cu metoda set_role()
a clasei User
și este setat la rolul implicit al utilizatorului.
Rolul implicit al utilizatorului este preluat din baza de date get_option('default_role')
și poate fi setat prin Panoul de Administrare mergând la Setări > General > Rol implicit pentru utilizatori noi.
Dacă ai înregistrat un rol nou (folosind add_role()
), acesta ar trebui să fie disponibil acolo pentru a fi selectat.
Alternativ, pentru mai mult control, poți folosi hook-urile user_register
sau profile_update
pentru a seta rolul condiționat sau în orice alt mod preferi.

După ce ai creat utilizatorul folosind
$user_id = wp_create_user( $user_login, $pas1, $user_email );
Crează obiectul utilizator
$user = new WP_User($user_id);
Apoi setează rolul
$user->set_role('editor');
Poți înlocui rolul 'editor' cu oricare dintre următoarele:
Administrator
Editor
Autor
Contribuitor
Abonat

De ce?? Nu are niciun rost să pui codul undeva fără să știi ce face sau cum funcționează
