显示 WordPress 用户角色

Display WordPress User Role

我的网站上有一个票务支持表格,现在有一个字段,returns(在管理区域)是提交表格的人的姓名。

任何人都知道我将如何修改它以显示他们的用户角色? IE。订阅者、编辑等

$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;
}

请将代码的最后一行更改为:

$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]);
          }

更新: 要使用 space 删除下划线,您的代码可能会变成:

$raised_by='';
       if($ticket->type=='user'){
           $user=get_userdata( $ticket->created_by );
           $raised_by= ucwords(str_replace("_"," ",$user->roles[0]));
          }

你可能注意到了,我还添加了 PHP 的 ucwords 功能,这是为了确保屏幕上的角色看起来不错,即管理员将显示为管理员等

您可能还会注意到角色[0],0 表示我们当前拥有的数据是一个数组。所以我们从分配给用户的所有角色中挑选第一个用户角色。我相信这足以满足您的需求。

如果这能解决您的问题或者您仍然需要任何帮助,请告诉我。您可以在评论中post。或者更新您的问题。

您可以使用这行代码。

$raised_by='';
if($ticket->type == 'user'){
    $user = get_userdata( $ticket->created_by );
    $raised_by = implode(', ', $user_info->roles);
}

或者,如果您更喜欢使用您编写的 get_user_role 函数, 稍微修改它以将用户 ID 作为输入并 return 用户角色。

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);
}