Мне нужно как-то проверить роль кого-то только с их идентификатором. Я нашел проверку current_user_can()
. Но это работает только для людей, которые вошли в систему. Как я могу проверить это, если этот пользователь не является текущим пользователем? Я использую систему заказов по телефону, но для заказа других людей используется учетная запись администратора/конкретного пользователя.
Получить роль пользователя по ID WordPress
Ответ 1
Вы не можете получить роль пользователя напрямую. Во-первых, вы должны получить user_meta_data, и он вернет объект, который будет содержать роли пользователя.
Код:
$user_meta=get_userdata($user_id);
$user_roles=$user_meta->roles; //array of roles the user is part of.
Ответ 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';
}
Ответ 3
$user_meta = get_userdata($user_id);
$user_roles = $user_meta->roles;
if ( in_array( 'administrator', $user_roles, true ) ) {
//echo User is a administrator';
}
Ответ 4
Здравствуйте, попробуйте этот оптимальный код
if (get_userdata($post->post_author)->roles[0] == 'your_specified_role'){
echo 'role exist';
}else{
echo 'role does not exist';
}