Мне нужно как-то проверить роль кого-то только с их идентификатором.
Я нашел current_user_can()
проверять. Но это работает только для людей, которые вошли в систему. Как я могу проверить это, если этот пользователь не является текущим пользователем? Я использую систему заказов по телефону, но для заказа других людей используется учетная запись администратора / конкретного пользователя.
Спасибо
Вы не можете получить роль пользователя напрямую. Во-первых, вы должны получить user_meta_data, и он вернет объект, который будет содержать роли пользователя.
Код:
$user_meta=get_userdata($user_id);
$user_roles=$user_meta->roles; //array of roles the user is part of.
Информация, которую вы должны знать, прежде чем продолжить:
Давайте получим все роли и проверим, есть ли роль, которая вас интересует, там или сейчас.
<?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';
}
$user_meta = get_userdata($user_id);
$user_roles = $user_meta->roles;
if ( in_array( 'administrator', $user_roles, true ) ) {
//echo User is a administrator';
}