Получить роль пользователя по идентификатору WordPress

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

Спасибо

17

Решение

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

Код:

$user_meta=get_userdata($user_id);

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

Другие решения

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

  • Вы не можете получить роль пользователя по 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';
}
4

$user_meta = get_userdata($user_id);
$user_roles = $user_meta->roles;

if ( in_array( 'administrator', $user_roles, true ) ) {
//echo User is a administrator';
}
-2
По вопросам рекламы [email protected]