[Résolu] Attribution d’un genre personnalisé à un rôle utilisateur. (Créer un compte)

  • WordPress :5.8
  • Statut : résolu
  • Ce sujet contient 13 réponses, 4 participants et a été mis à jour pour la dernière fois par g-p-to, le il y a 2 mois.
14 sujets de 1 à 14 (sur un total de 14)
  • Auteur
    Messages
  • #2422415
    g-p-to
    Participant
    Initié WordPress
    8 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL :
    • Thème utilisé : OceanWP
    • Extensions en place :
    • Nom de l’hébergeur : LWS
    • Adresse du site : Site non ouvert pour le moment

    Problème(s) rencontré(s) : Définition d’un code pour l’attribution d’un genre.

     

    Bonjour,

    Je cherche un moyen d’attribuer un genre personnalisé que j’ai créé à un rôle utilisateur.
    J’ai également créé des rôles personnalisés très spécifiques pour cela, mais pour l’exemple, disons que j’aimerais que dès qu’un utilisateur devient administrateur, il lui est attribué un genre avec une valeur « femme », ou dès qu’il devient abonné, la valeur passe à « homme ».
    Je sais que cela peut sembler étrange, mais derrière cela, il y a des mécanismes d’adhésion, etc.

    J’ai cherché sur le net mais je n’ai pas trouvé beaucoup d’exemples concrets pour ce scénario. Est-ce possible ?

    J’ai trouvé par exemple un sujet concernant l’attribution d’un avatar à un rôle, ou un autre pour enregistrer une meta utilisateur en fonction du rôle de l’utilisateur, mais je n’arrive pas à comprendre comment cela fonctionne.

    Serait-il possible de recevoir un peu d’aide s’il-vous plaît ?

    #2422426
    pasglop
    Participant
    Maître WordPress
    542 contributions

    Peut-être un début d’idée, ici, avec les fichiers qui vont bien, ?

    #2422436
    g-p-to
    Participant
    Initié WordPress
    8 contributions

    Du peu que j’ai pu lire, je ne sais pas si ça conviendra mais ça m’a l’air fortement intéressant ! Merci bien, je potasse ça ce soir en rentrant du boulot et je reviens pour donner mon avis.

    #2422460
    ferman
    Participant
    Maître WordPress
    5615 contributions

    Bonjour,

    Il est possible avec la fonction add_role, d’ajouter automatiquement un rôle secondaire à un rôle existant. Par exemple, si vous avez créé les custom rôles « femme » et « homme », il est possible que l’administrateur soit gratifié du rôle prestigieux supplémentaire « femme » et que le simple abonné reçoive en punition le rôle supplémentaire « homme ». Attention: cela implique que tous les abonnés soient des « hommes » et tous les administrateurs soient des « femmes » (pas d’abonné ou d’administrateur sans rôle secondaire). Il est possible de faire des exceptions avec des conditions additionnelles dans la fonction.

    #2422526
    g-p-to
    Participant
    Initié WordPress
    8 contributions

    D’accord, merci @ferman , je vois l’idée mais ce n’est pas ce que je cherche à faire. Je cherche quelque chose de similaire mais en attribuant un genre (je m’explique plus bas).


    @pasglop
    , bien qu’étant très intéressant, comme je le pensais, en gros ce plugin sert à définir une appellation de genre pour l’utilisateur admin, on va dire ça comme ça, mais ce n’est pas non plus ce que je cherche à faire.

    Je dis peut-être des bêtises mais je pense qu’il me faudrait trouver le moyen d’attribuer une valeur (meta_value : ex. femme) à un rôle spécifique, de ce fait à chaque fois qu’un utilisateur change de rôle pour celui-ci, il lui est attribué cette valeur.

    ex. un utilisateur homme qui change son rôle en admin doit avoir son genre personnalisé mis à jour :
    – utilisateur (genre) homme (rôle) abonné -[en changeant de rôle]-> utilisateur (genre) chèvre (rôle) administrateur.
    (c’est pour l’exemple hein !)

    Peut-être est-ce non possible ?

    #2422536
    mathieu42
    Participant
    Maître WordPress
    1754 contributions

    le genre est quelque chose qui est propre à une personne et le role défini les droits d’accès aux différents fonctionnalités. donc je ne comprends pas pourquoi le genre d’une personne change quand cette personne change de role.

    peut-être que ce ne sont pas les bons termes, pouvez-vous nous donner plus de détails sur les mécanismes d’adhésion dont vous parlez dans votre 1er message ?

    #2422549
    g-p-to
    Participant
    Initié WordPress
    8 contributions

    Il est vrai qu’avec les informations que j’ai donné tout ceci ne parait pas très cohérent, je le concède, « my bad » désolé, c’est parce que je ne voulais pas trop rentrer dans les détails pour ne pas embêter.
    Donc, reprenons :

    Pour mon site dans lequel les utilisateurs sont entre autres amenés à échanger par différents chat, j’utilise un plugin de gestion des utilisateurs dans lequel il est possible d’attribuer un avatar pour chaque genre créé. J’ai donc créé deux genres (un avatar masculin et un avatar féminin), disponibles pour les utilisateurs qui n’ont pas souscrit à une de mes offres premium. J’utilise d’autres genres (avatars : ex. chèvres, lion, chat) pour les utilisateurs prémium.

    De ce fait, le genre à proprement parler n’est pas vraiment important, je crée juste autant de genre que j’ai besoin d’avatar.

    Mon problème : Il me fallait trouver un moyen pour qu’un utilisateur qui à souscrit à mon offre et qui possède donc son avatar ex. chien, perde ce dernier lorsque sa souscription arrive à termes.

    Puisque les rôles sont mis à jour dans le plugin cité plus haut à chaque fois qu’un utilisateur passe de premium à non premium (ils passent d’un rôle custom pour premium à abonné en fait), je souhaiterais actualiser leur genre en même temps, et leur attribuer un genre créé spécialement pour leur retirer l’avatar premium.

    Voilà, un peu « tricky » mais c’est la seule solution que j’ai trouvé, d’où mon besoin de savoir comment assigner un genre ou une valeur différente à un rôle au changement de celui-ci . Pardon pour l’étalage mais j’espère que c’est compréhensible.

    #2422550
    ferman
    Participant
    Maître WordPress
    5615 contributions

    il me faudrait trouver le moyen d’attribuer une valeur (meta_value : ex. femme) à un rôle spécifique

    Il est possible d’ajouter ou de modifier des usermeta ( les rôles sont des usermeta) et de le faire sous conditions. Donc en principe vous pouvez créer un meta  « genre » et lui donner la valeur « homme » ou « femme » et changer cette valeur si l’utilisateur a un certain rôle.

    #2422827
    g-p-to
    Participant
    Initié WordPress
    8 contributions

    Oui c’est tout à fait ce que j’essaie d’accomplir, mais je ne sais comment m’y prendre.

    Du côté des plugins je n’ai malheureusement rien trouvé qui pourrait m’aider en ce sens. Est-ce qu’il y aurait une façon de constituer un code qui remplirait cette fonction ?

    #2422889
    ferman
    Participant
    Maître WordPress
    5615 contributions

    Pour ajouter un meta selon le rôle (sans chercher à comprendre à quoi ça peut bien servir ), vous pouvez essayer le code ci-dessous.

    function updatemeta() {
    	
    		$user_id = get_current_user_id();
    		$femme = 'Femme';
    		$homme = 'Homme';
    		
    	if (current_user_can('subscriber') ){
    		$updated = update_user_meta( $user_id, 'genre', $homme );
    		}
    	elseif (current_user_can('administrator')){
    		$updated = update_user_meta( $user_id, 'genre', $femme );	
    		}
    	else {delete_user_meta($user_id, 'genre');
    		}
    }
    add_filter ('init','updatemeta');

    Ce code est à mettre de préférence dans un plugin personnel  (facile à faire) ou le fichier “functions.php” d’un thème enfant. Si vous n’en avez pas c’est facile à créer avec l’extension “Child theme configurator“. Si vous ne voulez rien créer vous pouvez aussi utiliser l’extension “my custom functions“. C’est simple mais lisez les FAQ et surtout ça: “Q. What to do if this plugin crashed the website?” qui vous dit comment rétablir la situation en cas de problème (pas grave et facilement réparable  par FTP).

     

    • Cette réponse a été modifiée le il y a 2 mois et 1 semaine par ferman.
    #2422902
    g-p-to
    Participant
    Initié WordPress
    8 contributions

    D’accord, merci pour la réponse, pour les conseils et pour les précautions d’emploi qui vont avec.

    Je ne suis pas bien doué en codage mais étant curieux j’essaierai de comprendre la logique derrière ces lignes. Je teste ça dès que je peux et je reviens poster ici. Merci.

    #2422911
    ferman
    Participant
    Maître WordPress
    5615 contributions

    Ça signifie simplement:

    Si l’utilisateur connecté est « abonné » on lui joint le qualificatif « homme »

    S’il est  « administrateur  » ….. »femme »

    S’il n’est ni l’un ni l’autre il n’a pas de genre ???.

    Par exemple, un nouvel abonné sera automatiquement « homme »

    S’il est promu administrateur, il passera « femme »

    Si vous le dégradez en abonné, il repassera homme.

    S’il a un rôle autre que abonné ou administrateur, il n’aura aucun genre.

    Pour le principe (ajouter/enlever des meta) c’est simple. Pour le reste je ne comprends pas ce que vous voulez faire (mais ça n’a pas d’importance 😉 ).

    #2422960
    g-p-to
    Participant
    Initié WordPress
    8 contributions

    D’accord, j’en comprenais le principe mais pas forcément la structure logique. C’est plus intéressant pour moi que de juste copier/coller et prier pour le meilleur, merci.

    Je teste cela et je reviens faire un rapport sur le sujet qui passera sans doute en « résolu ».

    #2423473
    g-p-to
    Participant
    Initié WordPress
    8 contributions

    Désolé pour le retour tardif, je n’avais pas accès à mon pc et le code proposé fonctionne mais il m’a laissé avec de nouveaux soucis auxquels je n’avais pas réfléchi et que j’ai essayé de gérer…

    Bref, ma demande initiale est solutionnée, un grand merci donc aux participants ( @pasglop, @mathieu42 ) et je suis particulièrement reconnaissant envers @ferman, qui n’aura pas compris (l’intérêt de) ma demande farfelue mais qui m’a aidé à y voir un peu plus clair dans ce sombre univers en lignes de codes qui peut paraitre austère à tout débutant comme moi. Merci.

14 sujets de 1 à 14 (sur un total de 14)
  • Vous devez être connecté pour répondre à ce sujet.