我有一行在他的个人资料中打印用户的联系信息。只有登录用户才能看到联系信息。
<?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);
答案 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';
?>