我有一行可以打印用户个人资料中的联系信息。只有登录用户才能看到联系信息。
<?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);
从问题来看,您似乎需要调用 get_users 函数并传递"主管"角色以获取该类型的用户并将其联系信息显示给"经理"角色。
在您编写时,显示的联系信息是针对当前用户的。如果要显示其他角色的联系信息,则需要获取此信息。
未经测试,但这可能很接近...
//if current user is the manager...
$supervisors = get_users( 'role=supervisor' );
foreach ($supervisors as $supervisor) {
echo '<span>' . esc_html( $supervisor->user_email ) . '</span>';
}
我只不过
是 php 的初学者,但使用"OR"可以帮助您在单个内容上聚合角色的条件:
<?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';
?>