我的网站上有一张票务支持表格,现在有一个字段可以返回(在管理区域中)提交表格的人的姓名。
任何人都知道如何修改它以显示其用户角色?即。订阅者,编辑等
$raised_by='';
if($ticket->type=='user'){
$user=get_userdata( $ticket->created_by );
$raised_by=$user->display_name;
}
我猜它里面会有这些东西......但是在谈到这一点时我并不太讨厌。
function get_user_role() {
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
return $user_role;
}
答案 0 :(得分:3)
请将代码的最后一行更改为:
$raised_by=ucwords($user->roles[0]);
这样你当前的代码显示名字,即
$raised_by='';
if($ticket->type=='user'){
$user=get_userdata( $ticket->created_by );
$raised_by=$user->display_name;
}
以上代码将成为:
$raised_by='';
if($ticket->type=='user'){
$user=get_userdata( $ticket->created_by );
$raised_by=ucwords($user->roles[0]);
}
更新:要删除空格下划线,您的代码可能会变为:
$raised_by='';
if($ticket->type=='user'){
$user=get_userdata( $ticket->created_by );
$raised_by= ucwords(str_replace("_"," ",$user->roles[0]));
}
您可能会注意到,我还添加了PHP的ucwords功能,这是为了确保屏幕上的角色看起来不错,即管理员将显示为Admin等。
你也可能注意到角色[0],0意味着我们当前拥有的数据是一个数组。因此,我们从分配给用户的所有角色中挑选第一个用户角色。我相信这足以满足您的需求。
如果这可以解决您的问题,或者您仍需要任何帮助,请与我们联系。您可以在评论中发帖。或者更新你的问题。
答案 1 :(得分:0)
您可以使用此行代码。
$raised_by='';
if($ticket->type == 'user'){
$user = get_userdata( $ticket->created_by );
$raised_by = implode(', ', $user_info->roles);
}
或者,如果您更喜欢使用您编写的get_user_role
函数,
稍微修改它以将用户ID作为输入并返回用户角色。
function get_user_role($user_id) {
$user_info = get_userdata($user_id);
$user_roles = $user->roles;
$user_role = array_shift($user_roles);
return $user_role;
}
您可以像下面所示使用它来输出用户角色。
$raised_by='';
if($ticket->type == 'user'){
$user = get_userdata( $ticket->created_by );
$raised_by = get_user_role($user->ID);
}