根据用户角色有条件地显示php内容

时间:2015-02-03 01:10:35

标签: php wordpress

我有一行在他的个人资料中打印用户的联系信息。只有登录用户才能看到联系信息。

<?php 
  // Contact Info
?>

我有2个用户角色 - supervisor, manager

我想要实现的是,如果登录的用户是supervisor,那么他可以看到自己的联系信息,但他看不到manager's联系人。

但如果登录的用户是manager,那么他可以看到自己的联系信息,但他也可以看到supervisor's联系信息。

我一直在尝试使用标准if current_user_is功能,但这只会显示一个或另一个。

<?php global $current_user;
      get_currentuserinfo();
      if(current_user_is("manager"))
          echo 'Contact Info Here';
      else if(current_user_is("supervisor"))
          echo 'Contact Info Here';
      else if(current_user_is_not("manager"))
          echo 'Restricted contact, must be a manager';
?>

我无法弄清楚如何使这项工作,所以它有条件地显示。

我在全局规则中也有这些规则,不确定它是多么相关:

$store_user = get_userdata( get_query_var( 'author' ) );
$store_info = get_store_info( $store_user->ID );
$user_meta = get_user_meta($store_user->ID);

2 个答案:

答案 0 :(得分:0)

从问题来看,您似乎需要调用get_users函数并传递&#34;主管&#34;获得该类型用户并将其联系信息显示给&#34;经理&#34;作用。

正如您所写,所显示的联系信息适用于当前用户。如果您要显示的内容,则需要抓取其他角色的联系信息。

未经测试,但这可能很接近......

//if current user is the manager...
$supervisors = get_users( 'role=supervisor' );
foreach ($supervisors as $supervisor) {
    echo '<span>' . esc_html( $supervisor->user_email ) . '</span>';
}

答案 1 :(得分:0)

我只是一个使用PHP的初学者但使用&#39; OR&#39;可以帮助你聚合角色&#39;单个内容的条件:

<?php global $current_user;
    get_currentuserinfo();
    if(current_user_is("manager") OR current_user_is("supervisor"))
        echo 'Contact Info Here';
    else()
        echo 'Restricted contact, must be a manager';
?>