Получить роль пользователя по ID WordPress

Мне нужно как-то проверить чью-то роль только с их ID. Я нашел current_user_can() проверка. Но это работает только для людей, которые вошли в систему. Как бы я проверил это, если этот пользователь не является текущим пользователем? Я использую систему заказа телефона, но использует учетную запись admin/specific для заказа для других людей.

спасибо

2 ответов


вы не можете получить роль пользователя напрямую. Во-первых, вы должны получить user_meta_data, и он вернет объект, который будет содержать роли пользователя.

код:

$user_meta=get_userdata($user_id);

$user_roles=$user_meta->roles; //array of roles the user is part of.

Easy простое решение!

информация, которую вы должны знать прежде чем продолжить:

  • вы не можете получить роль пользователя по ID.
  • вы можете получить все роли, назначенные пользователю.

давайте получим все роли и проверим, есть ли интересующая вас роль или сейчас.

<?php

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

// Get all the user roles as an array.
$user_roles = $user_meta->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';
}

Мирный! ✌️