WordPress: проверьте пользовательскую роль пользователя во внешнем интерфейсе

Я просто хочу показать какое-то сообщение, когда у пользователя есть обычай роль пользователя. Он работает с собственными пользовательскими ролями, но не с пользовательскими. Вот мой код:

<?php
$user_ID = get_current_user_ID();
$user = new WP_User( $user_ID );
$current_user = $user->roles[0];

if( $current_user == 'client' ){
echo 'hello client';
} else {
// do nothing
}
?>

Любая помощь приветствуется, спасибо!

2

Решение

Вы можете попробовать это:

if ( is_user_logged_in() )
{
global $current_user;
$user_role = $current_user->roles[0];

if($user_role == 'client')
{
// do something
}
}

is_user_logged_in() используется, чтобы проверить, вошел ли пользователь в систему или нет

2

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

Приведенные выше примеры являются проблематичными, если у пользователя более одного набора ролей, так как код проверяет только первую роль, которую установил пользователь.

В идеале вы должны проверить, соответствует ли какая-либо из ролей пользователя пользовательской роли:

if ( is_user_logged_in() ) {
global $current_user;

if( in_array('YOUR_CUSTOM_ROLE',  $current_user->roles) ) {
echo 'User has Custom Role';
} else {
echo 'User does not have Custom Role';
}
}
1

По вопросам рекламы [email protected]