Changer le menu sous certaines conditions (en BDD)

  • WordPress :5.2
  • Statut : non résolu
6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Messages
  • #2282134
    bipbip41
    Participant
    Initié WordPress
    5 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.0
    • Thème utilisé : x-magazine
    • Extensions en place : woocommerce
    • Nom de l’hébergeur : OVH
    • Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour à tous,

    Je réalise un site sous WordPress (je suis certain que vous vous en doutiez 🙂 ), je suis débutant. Mon site est fait dans les grandes lignes, mais je bute sur un détail.

    En fait, c’est un site pour une association. Il contient donc une partie “site” avec diverses informations et articles, une boutique pour vendre des goodies, et une partie pour payer sa cotisation. Le paiement de la cotisation et la boutique sont sous Woocommerce. Pour différencier les 2, j’ai simplement mis les goodies dans une catégorie, et les cotisation dans une autre. En fonction de ce que l’on veut faire (payer sa cotiz ou acheter), j’affiche l’une ou l’autre des catégories.

    Cependant, je souhaite aller un peu plus loin. J’aimerai faire un menu avec des conditions. A l’inscription du membre, je lui pose une question via le plugin “user registration” qui permet de générer des formulaires : Est-ce qu’il est déjà cotisant ou non. Comme le paiement de la cotisation n’existait pas sur l’ancien site, cela me permet de ne pas reprendre chaque inscription une par une.

    En effet, la cotisation n’est pas la même pour un nouveau membre : elle est légèrement plus chère.

    Voici donc ce que je voudrais faire via le menu : S’il s’agit d’un nouveau membre, afficher la catégorie de cotisation adéquate (légèrement majorée). S’il s’agit d’un membre qui cotisait déjà, idem, vers la catégorie de cotisation pour les anciens membres. Et lorsque la cotisation est déjà payée, le menu disparaît, pour pas qu’on puisse la payer une seconde fois.

    J’ai déjà réussi à faire changer les menus si on est connecté ou non, via un plugin (conditional menu), mais là, il faut taper dans la BDD, et je ne sais pas par où commencer.

    L’info se trouve dans la table wp_user_meta, sous la forme meta_key=user_registration_Status et meta_calue=Cotisant ou Non Cotisant

    A partir du moment où j’aurai cette info, je pense pouvoir me débrouiller pour aller taper dans la BDD pour savoir si le membre a payé sa cotiz et donc supprimer le menu.

    Avec tous mes remerciement d’avance, il me manque plus que ça et je suis bon 🙂

    #2282287
    bipbip41
    Participant
    Initié WordPress
    5 contributions

    J’avance un peu sur mon problème.

    J’ai installé le plugin Menu Item Visibility Control, qui permet d’afficher des éléments du menu sous certaines conditions. Pour récupérer l’information sur l’utilisateur que j’ai enregistrée via le formulaire d’inscription, la commande serait : get_user_meta( $user_id, ‘user_registration_Status’, true );

    Sauf que je n’arrive pas à glisser ceci dans le plugin pour en faire une condition :

    Menu Item Visibility Control

    Si vous aviez une idée de la synthaxe, ça me débloquerait pour un truc sur lequel je suis depuis 2 jours 😀

    Un grand merci

    #2282294
    ferman
    Participant
    Maître WordPress
    1372 contributions

    Bonjour,

    Juste une remarque:

    Vous avez noté que le plugin en question n’a pas été mis à jour depuis deux ans et qu’il n’a pas été testé avec les versions 5.x de wordpress?

    Et vu l’avertissement en haut de la page du plugin?

    J’ai l’impression que celui-ci fait à-peu-près la même chose et il y en a d’autres.

    • Cette réponse a été modifiée le il y a 3 weeks et 4 jours par  ferman.
    #2282295
    bipbip41
    Participant
    Initié WordPress
    5 contributions

    Oui j’ai vu, mais vu que je patauge avec cette histoire… :/

    #2282299
    bipbip41
    Participant
    Initié WordPress
    5 contributions

    En effet, il est dans le même genre, mais pas tout à fait ^^. Il permet de limiter l’affichage à un rôle, hors tout le monde aura le même rôle (aux niveau des membres), seuls ceux qui feront vivre le site auront un autre rôle.

    Du coup, si je passe par un système de rôle, ca va déconner justement pour ces quelques personnes ^^.

    Le but étant vraiment d’afficher certaines menu via une info en BDD que je peux récupérer via get_user_meta( $user_id, ‘user_registration_Status’, true ); (à priori, trouvée sur le net).

    #2282390
    bipbip41
    Participant
    Initié WordPress
    5 contributions

    Re-bonjour,

    Je sens que je brûle 😀

    Je suis finalement parti sur le plugin If Menu – Visibility control for Menu Items qui lui semble à jour (4 mois)

    Celui-ci permet de créer ses propres conditions dans le fonction.php via ce format :

    // theme's functions.php or plugin file
    add_filter('if_menu_conditions', 'my_new_menu_conditions');
    
    function my_new_menu_conditions($conditions) {
      $conditions[] = array(
        'id'        =>  'single-my-custom-post-type',                       // unique ID for the rule
        'name'      =>  __('Single my-custom-post-type', 'i18n-domain'),    // name of the rule
        'condition' =>  function($item) {                                   // callback - must return Boolean
          return is_singular('my-custom-post-type');
        }
      );
    
      return $conditions;
    }

    Ma question est donc : comment glisser ceci : via get_user_meta( $user_id, ‘user_registration_Status’, true ); dans ce code. J’ai essayé plein de trucs sans succès. La réponse à cette requète est sensé être “Cotisant”

    Merci d’avance 🙂

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