web-dev-qa-db-fra.com

Afficher le shortcode de pied de page différent pour les utilisateurs connectés

J'ai un shortcode qui affiche un bloc de contenu. Est-il possible d'afficher un code HTML différent selon que l'utilisateur est connecté ou non? Ci-dessous est ce que j'ai jusqu'à présent.

function footer_shortcode(){
    $siteURL = site_url();
    $logoutURL = wp_logout_url(home_url());

    echo '
        <div class="signin_container"> 
            <h4 class="signin_footer_head">Log In To My Account</h4>
            <a href="'.$siteURL.'/login/">Log In</a>
            <a href="'.$siteURL.'/register/">Sign Up</a>
        </div>
    ';  
}

add_shortcode('footerShortcode', 'footer_shortcode');
1
Jon

Vous pouvez utiliser une balise conditionnelle pour vérifier si l'utilisateur est connecté. Les conditions sont très courantes dans W, je vous conseillerais de lire cette page .

Voici un exemple.

function footer_shortcode(){
    if (is_user_logged_in()){
        echo '
            // Logged In Content
        ';
    }else{
        echo '
            // Logged Out Content
        ';
    }       
}

add_shortcode('footerShortcode', 'footer_shortcode');
1
RiddleMeThis

Vous recherchez is_user_logged_in()

Voir: https://developer.wordpress.org/reference/functions/is_user_logged_in/

Exemple:

function footer_shortcode(){
    $siteURL = site_url();
    $logoutURL = wp_logout_url(home_url());

   if(is_user_logged_in()) { // user is logged in
      echo '
        <div class="signin_container"> 
            <h4 class="signin_footer_head">Account Info</h4>
        </div>
    '; 
   }

   else { //user is not logged in
      echo '
        <div class="signin_container"> 
            <h4 class="signin_footer_head">Log In To My Account</h4>
            <a href="'.$siteURL.'/login/">Log In</a>
            <a href="'.$siteURL.'/register/">Sign Up</a>
        </div>
    '; 
   } 
}

add_shortcode('footerShortcode', 'footer_shortcode');

Edit: Je vois RiddleMeThis m'a battu au poinçon

1
Liam Stewart