Je pense que vous pouvez le faire en utilisant la fonction add_role
.
Il existe trois paramètres dans la fonction add_role.
add_role($role, $display_name, $capabilities);
rôle $:Nom unique du rôle.
display_name de $:Le nom à afficher dans le Panneau de WordPress Administrateur.
$ capacités:Privilèges auxquels on peut accéder.
La liste complète de toutes les fonctionnalités peut être trouvée here.
Étape 2: ajouter des rôles utilisateur déroulant sous forme d'inscription
//1. Add a new form element...
add_action('register_form', 'myplugin_register_form');
function myplugin_register_form() {
global $wp_roles;
echo '<select name="role" class="input">';
foreach ($wp_roles->roles as $key=>$value) {
// Exclude default roles such as administrator etc. Add your own
if (! in_array($value['name'], [ 'Administrator', 'Contributor', ]) {
echo '<option value="'.$key.'">'.$value['name'].'</option>';
}
}
echo '</select>';
}
//2. Add validation.
add_filter('registration_errors', 'myplugin_registration_errors', 10, 3);
function myplugin_registration_errors($errors, $sanitized_user_login, $user_email) {
if (empty($_POST['role']) || ! empty($_POST['role']) && trim($_POST['role']) == '') {
$errors->add('role_error', __('<strong>ERROR</strong>: You must include a role.', 'mydomain'));
}
return $errors;
}
//3. Finally, save our extra registration user meta.
add_action('user_register', 'myplugin_user_register');
function myplugin_user_register($user_id) {
$user_id = wp_update_user(array('ID' => $user_id, 'role' => $_POST['role']));
}
Enfin Comment vérifier si un utilisateur est dans un rôle spécifique?
$user = wp_get_current_user();
if (in_array('author', (array) $user->roles)) {
//The user has the "author" role
}
[code] fonction myplugin_register_form() { wp_roles global de $; echo ''; } [/code] cette fonction me donne l'erreur de syntaxe ... –
merci @ Mo'men mohamed maintenant ça marche .... –