Как проверить роль пользователя в вордпресс?

Решено

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

Добавить Комментарий
Ответ

Функция проверка наличия роли

 /**
 * Проверяет роль определенного пользователя.
 * Возвращает true при совпадении.
 *
 * @param строка $role Название роли.
 * @param логический $user_id (не обязательный) ID пользователя, роль которого нужно проверить.
 * @return bool
 */
 function is_user_role($role, $user_id = null) {
 $user = is_numeric($user_id) ? get_userdata($user_id) : wp_get_current_user();
if (!$user)
 return false;
return in_array($role, (array) $user->roles);
 }
 

Пример использования

$user = wp_get_current_user();
if (is_user_role('role_name', $user->ID)) {
 echo "У вас есть доступ";
 } else {
 echo "У вас нет доступа";
 }
 

role_name — название роли

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.