2017-08-22 2 views
-1

Dans WordPress, je veux créer deux type d'utilisateur de registre: 1.teacher et 2. étudiant .. signifie s'inscrire en tant que professeur et inscrivez-vous en tant qu'étudiant.Je veux créer deux nouveaux types d'utilisateurs dans WordPress

  1. inscription des enseignants est gratuit et il publie sa vidéo, texte, etc ..

  2. inscription des étudiants est pas libre, mais il est de 6 mois et un abonnement de 12 mois lorsqu'un étudiant est souscrit pour cela, alors étudiant montrer le poste de l'enseignant.

Pouvez-vous s'il vous plaît me suggérer dans cette façon de créer ce type d'inscription et l'adhésion ...

merci à l'avance

Répondre

0

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 
} 
+0

[code] fonction myplugin_register_form() { wp_roles global de $; echo ''; } [/code] cette fonction me donne l'erreur de syntaxe ... –

+0

merci @ Mo'men mohamed maintenant ça marche .... –