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

Решено

Я создал произвольных ролей для пользователей. Это было сделано для разграничения доступа пользователей к определенным страница. Появилась проблема как проверять эти роли, я нашел только функцию проверки прав пользователя (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 — название роли

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

    Ваш ответ

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