Top bar dynamique en fonction de la connexion de l’utilisateur

  • WordPress :4.9.4
  • Statut : non résolu
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #2172158
    morganeZ
    Participant
    Initié WordPress
    4 contributions

    Bonjour,

    Ma configuration WP actuelle : WordPress 4.9.7

    • Version de PHP/MySQL : PHP v.7.0/<span data-ng-bind= »element.type »>MYSQL</span> <span data-ng-bind= »‘v’ + ctrlTabDatabases.constructor.formatVersion(element.version) » data-ng-if= »element.version »>v.5.6</span>
    • Thème utilisé : HESTIA
    • Extensions en place : Crowdfunding for WooCommerce, Elementor, Pirate Forms, Loco Translate, MANGOPAY WooCommerce plugin, Orbit Fox Compagnon, Profile Press, WooCommerce, Woo Checkout Field Editor Pro, WP Crowdfunding
    • Nom de l’hébergeur : OVH
    • Adresse du site :

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

    Bonjour,

    Je cherche à avoir une top bar dynamique en fonction de la connexion ou non de l’utilisateur, comme celle de wpfr.net :

    • avec Bonjour username – mon tableau de bord – Déconnexion quand l’utilisateur est connecté
    • avec Créer mon Compte – Connexion pour le statut Visiteur

    J’ai trouvé pas mal de chose pour avoir des menus dynamique mais pas grand chose au sujet de la top bar. J’ai pu ajouter la fonction déconnexion/ connexion grâce à l’ajout de ces lignes dans le fichiers fonctions:

    add_filter('wp_nav_menu_items', 'gkp_add_login_logout_link', 10, 2);
    function gkp_add_login_logout_link($items, $args) {
    
    ob_start();
    wp_loginout('index.php');
    $loginout = ob_get_contents();
    ob_end_clean();
    $items .= '
    
        '. $loginout .'
    
    ';
    return $items;
    }

    Mais je ne sais pas comment faire pour le reste. Avoir un menu différent en fonction du statut loggedin ou non me paraissait être une bonne solution, mais peut être pas du tout, qu’en pensez-vous?

    Je souhaiterais également évite de rajouter (encore !) une extension supplémentaire.

     

    Merci d’avance pour votre aide,

     

    Bien cordialement,

     

    Morgane

     

    • Ce sujet a été modifié le il y a 1 week et 5 days par  morganeZ.
    • Ce sujet a été modifié le il y a 1 week et 4 days par  PhiLyon.
    • Ce sujet a été modifié le il y a 1 week et 4 days par  PhiLyon.
    #2172231
    morganeZ
    Participant
    Initié WordPress
    4 contributions

    Je m’en suis sortie, voilà ce que j’ai ajouté dans mon fichier functions. C’et peut être du bidouille donc si vous avez de meilleures idées, je sus preneuse. En attendant si ça peut aider d’autres personnes.

    /*tableau de bord si user connecté sinon créer un compte*/
    add_filter( 'wp_nav_menu_items', 'give_dashboard', 10, 2);
    function give_dashboard($items)
    {
        if(is_user_logged_in())
        {
            $user=wp_get_current_user();
            $name=$user->display_name; 
            $items .= '<li><a href="http://....">Tableau de bord</a></li>';
        }
    	else
    	 {
            $user=wp_get_current_user();
            $name=$user->display_name; 
            $items .= '<li><a href="http://.... ">Créer un compte</a></li>';
        }	
        return $items;
    }
    
    /*login/logout*/
    add_filter('wp_nav_menu_items', 'gkp_add_login_logout_link', 10, 2);
    function gkp_add_login_logout_link($items, $args) {
    
        ob_start();
        wp_loginout('index.php');
        $loginout = ob_get_contents();
        ob_end_clean();
        $items .= '<li>'. $loginout .'</li>';
        return $items;
    }

    • Cette réponse a été modifiée le il y a 1 week et 5 days par  morganeZ. Raison: utilisation pastcode
    #2172234
    morganeZ
    Participant
    Initié WordPress
    4 contributions

    et puis celui-ci pour le Bonjour user_name

    /*User name si user logged in*/
    add_filter( 'wp_nav_menu_items', 'give_profile_name', 10, 2);
       function give_profile_name($items)
        {
        if(is_user_logged_in())
        {
            $user=wp_get_current_user();
            $name=$user->user_login;
            $items .= '<li><a href="">Bonjour '.$name.'</a></li>';
        }
        return $items;
    }

    #2172507
    morganeZ
    Participant
    Initié WordPress
    4 contributions

    Bon en fait ça ne fonctionne pas. depuis ce matin toutes les fonctions sont toujours là dans la top bar, mais malheureusement elles sont aussi dans le header et le footer en plus des liens provenant des menus associés.

    Quelqu’un voit ce qui ne va pas dans mon code? Ca me rend complètement dingue…

    Merci d’avance,

    Morgane

     

    #2172545
    PhiLyon
    Modérateur
    Maître WordPress
    19647 contributions

    Bonjour.

    Premièrement il faut créer un thème enfant pour faire tes modifs, tu l’as fait ?

    Pour ton code, perso je ne peux t’aider, par contre cette extension a l’air de faire le travail https://fr.wordpress.org/plugins/user-access-manager/

    🙂

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