如果用户已登录并具有角色回应语句

时间:2016-04-22 作者:steamfunk

我目前有一个潜水设置,我想在用户登录并具有特定角色时显示不同的信息位。

我有三个角色“管理员”、“收养机构”和“商店经理”,我想显示到管理区域的链接。然后,我有一个名为“customer”的角色,如果客户登录并且用户角色匹配,我希望显示指向内部页面的链接。我创建了一个if else 语句代码,但我似乎有错误。

我想知道是否有人能告诉我我做错了什么。

    <?php

    if ( is_user_logged_in() && (current_user_can(\'administrator\') || current_user_can(\'shop-manager\') || current_user_can(\'adoption-agency\'))) {
    echo \'<p><span>Welcome: </span>\' . $current_user->user_login . \'</p>\';
echo \'<p><i class="fa fa-smile-o" ></i>
<a href="\'. get_admin_url() .\'">Post</a></p>\';
     echo \'<p><i class="fa fa-unlock-alt" ></i>
<a href="\'. wp_logout_url() .\'">Logout</a></p>\';


    }else if( is_user_logged_in() && (current_user_can(\'customer\')){





      echo   \'<a href="\' .get_page_link( get_page_by_title( account )->ID ).\'">My account</a>\';

}else{
    //default menu
echo wp_login_form(); }



    ?>

2 个回复
SO网友:Caspar

你的问题是current_user_can() 具有功能而不是用户角色。因此,要检查管理员,例如,您可以使用:

if ( current_user_can( \'manage_options\' ) ) { ... }
因为通常只有管理员可以管理选项。

您必须将自定义用户角色与对应于其角色的功能联系起来,这些功能是在使用创建角色时为每个角色定义的add_role(). 有关内置WP角色及其相应功能的完整列表,请参阅the codex.

SO网友:user5200704

Jevuska是在代码检查用户角色当前用户和有条件显示内容的详细信息下面更正的答案。

if ( is_user_logged_in() ){
     $current_user = wp_get_current_user();
     $roles = $current_user->roles;  
     $level = 0;
     foreach( $roles as $role ){
       if( in_array( array( \'administrator\', \'shop-manager\', \'adoption-agency\'), $role ) ){
         $level = 1;
         break;  
       }else if( in_array( array( \'customer\'), $role ) ){
         $level = 2;
         break;    
       }
     }
     if( $level == 1 ){
           echo \'<p><span>Welcome: </span>\' . $current_user->user_login . \'</p>\';
           echo \'<p><i class="fa fa-smile-o" ></i>
           <a href="\'. get_admin_url() .\'">Post</a></p>\';
           echo \'<p><i class="fa fa-unlock-alt" ></i>
           <a href="\'. wp_logout_url() .\'">Logout</a></p>\';
     }else if( $level == 2 ){
         echo   \'<a href="\' .get_page_link( get_page_by_title( account )->ID ).\'">My account</a>\';

     }//else {
       // put default leave comment  
     //}
    }else{
      echo wp_login_form();     
}

if ( is_user_logged_in() ){
     $current_user = wp_get_current_user();
     $roles = $current_user->roles;  
     if( in_array( \'administrator\', $role ) || in_array( \'shop-manager\', $role ) ||  in_array( \'adoption-agency\', $role )){
           echo \'<p><span>Welcome: </span>\' . $current_user->user_login . \'</p>\';
           echo \'<p><i class="fa fa-smile-o" ></i>
           <a href="\'. get_admin_url() .\'">Post</a></p>\';
           echo \'<p><i class="fa fa-unlock-alt" ></i>
           <a href="\'. wp_logout_url() .\'">Logout</a></p>\';
     }else if( in_array( \'customer\', $role ) ){
         echo   \'<a href="\' .get_page_link( get_page_by_title( account )->ID ).\'">My account</a>\';

     }//else {
       // put default leave comment  
     //}
    }else{
      echo wp_login_form();     
}

相关推荐