通过ID WordPress获取用户角色

2022-08-30 10:42:46

我需要以某种方式仅用他们的ID检查某人的角色。我找到了支票。但这仅适用于已登录的用户。如果该用户不是当前用户,我该如何检查?我正在使用电话订购系统,但它使用管理员/特定帐户为其他人订购。current_user_can()


答案 1

要检查用户是否具有特定角色,您必须获取其角色的列表,并查看该角色是否在此处列出。

示例函数:

function user_has_role($user_id, $role_name)
{
    $user_meta = get_userdata($user_id);
    $user_roles = $user_meta->roles;
    return in_array($role_name, $user_roles);
}

用法示例:

$user_is_subscriber = user_has_role(get_current_user_id(), 'subscriber');

答案 2

在继续之前,您需要了解的信息:

  • 您无法直接按 ID 获取用户角色。
  • 您可以获取用户分配到的所有角色。

让我们获取所有角色,并检查您感兴趣的角色是否存在或现在。

<?php

// Get the user object.
$user = get_userdata( $user_id );

// Get all the user roles as an array.
$user_roles = $user->roles;

// Check if the role you're interested in, is present in the array.
if ( in_array( 'subscriber', $user_roles, true ) ) {
    // Do something.
    echo 'YES, User is a subscriber';
}

推荐