NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.
Publié le : 08 août 2019 - Modifié le : 17 janvier 2022
Temps de lecture : 3 minutes, 30 seconds - 329 mots
Partager la publication "Créer un statut utilisateur avec un formulaire Formidable Form"
Nous allons dans ce tutoriel se créer une fonction qui va nous permettre de proposer dans un formulaire le choix à l’utilisateur de choisir son rôle selon les choix que nous aurons définit dans notre formulaire puis nous allons permettre de créer le nouveau rôle pour l’utilisateur.
Nous allons d’abord créer notre rôle utilisateur. Pour ça mettons en place les user rôle. Ici dans notre cas d’exemple nous souhaitons ajouter un rôle Médecin, un rôle pharmacien, et un rôle Infirmière. (functions.php ou autres fichiers)
//////////////////////// Add User Role /////////////////////// function medecin_new_role() { //add the new user role add_role( 'medecin', 'Medecin', array( 'read' => true, 'delete_posts' => false ) ); } add_action('admin_init', 'medecin_new_role'); function pharmacien_new_role() { //add the new user role add_role( 'pharmacien', 'Pharmacien', array( 'read' => true, 'delete_posts' => false ) ); } add_action('admin_init', 'pharmacien_new_role'); function infirmiere_new_role() { //add the new user role add_role( 'infirmiere', 'Infirmièr(e)', array( 'read' => true, 'delete_posts' => false ) ); } add_action('admin_init', 'infirmiere_new_role');
Donc on peut aller désormais vérifier dans un profil utilisateur, voir si nos trois nouveaux rôles apparaissent.
Maintenant, nous devons aller créer un formulaire qui va nous permettre de créer un nouvel utilisateur, en ayant l’addon formidable User Registration.
On créé notre formulaire avec les données que vous souhaitez lui attribuer, genre Nom / Prénom, Courriel, ect … Puis on créer une nouvelle donnée que l’on va nommer par exemple Statut. Pour cette donnée, on va lui créer un champs radio bouton, puis nous allons lui ajouter trois options qui vont être dans notre exemple :
Ensuite nous allons dans nos réglages du formulaire -> Actions et Notifications -> pour ajouter un user registration. Remplir le nécessaire et pour le user rôle le laisser auteur par défaut.
Exemple :
Voici la fonction qui donne les conditions nécessaires d’attribuer le bon rôle utilisateur au moment de son inscription et de son choix de rôle.
On change les IDS par les IDS concernés de votre formulaire et de votre ID champ.
- L’ID 190 correspond à l’ID du champ.
- L’ID 6 est l’ID de notre formulaire.
//////////////////////// Formidable form attribute user rôle /////////////////////// function statut_new_role($user_role, $atts){ extract($atts); if($form->id == 6){ // WSIS: change this to your form ID if($_POST['item_meta'][190] == 'medecin') //change 125 to the ID of your field and 'Author' to the value of your radio button WSIS: or single checkbox $user_role = 'medecin'; // WSIS: rolename if($_POST['item_meta'][190] == 'infirmiere') //change 125 to the ID of your field and 'Author' to the value of your radio button WSIS: or single checkbox $user_role = 'infirmiere'; // WSIS: rolename if($_POST['item_meta'][190] == 'pharmacien') //change 125 to the ID of your field and 'Author' to the value of your radio button WSIS: or single checkbox $user_role = 'pharmacien'; // WSIS: rolename } return $user_role; } add_filter('frmreg_new_role', 'statut_new_role', 10, 2);
Finalement vérifier si en testant le formulaire il va attribuer le bon rôle au nouvel utilisateur enregistré postant le formulaire. Assurez vous d’attribuer des valeurs séparées dans votre formulaire et que, dans votre fonction de conditions, vous ayez les bonnes valeurs correspondantes à chaque rôle.