Пользователи в WordPress (часть 2)

В прошлой статье "Пользователи в WordPress (часть 1)" мы научились создавать и изменять пользователей. Теперь попробуем использовать простейшие примеры функций и классов, которые связаны с учётными записями. В этой статье рассмотрим:
  • is_user_logged_in - проверяет авторизован ли пользователь
  • wp_get_current_user - получает данные пользователя
  • WP_User - получает и изменяет данные пользователя
Рассмотрим все пункты по порядку.

Проверка авторизации

Функция "is_user_logged_in" проверяет зарегистрирован ли текущий пользователь. Возвращает логическое "true", если авторизован, иначе "false". Функция не принимает никаких аргументов. Пример использования функции:
if ( is_user_logged_in() ) {
   echo 'Вы авторизованы';
} else {
   echo 'Вы анонимный пользователь';
}
По сути функция "is_user_logged_in" является функцией-обёрткой для "wp_get_current_user", о которой пойдёт речь далее

Получение данных

Данные текущего пользователя можно получить с помощью функции "wp_get_current_user". Функция не принимает никаких аргументов. Пример использования функции:
$data = wp_get_current_user();
echo 'ID: '               . $data->ID . '<br>';
echo 'Логин: '            . $data->user_login . '<br>';
echo 'Почта: '            . $data->user_email . '<br>';
echo 'Имя: '              . $data->user_firstname . '<br>';
echo 'Фамилия: '          . $data->user_lastname . '<br>';
echo 'Отображаемое имя: ' . $data->display_name . '<br>'; 
Как говорилось ранее, функция "is_user_logged_in" является функцией-обёрткой для "wp_get_current_user". Вот её код:
function is_user_logged_in() {
   $user = wp_get_current_user();
   return $user->exists(); // возвращает логическое "true" (если пользователь существует) или "false" (если нет)
}

Получение данных, управление ролями

Класс WP_User позволяет получать, удалять или изменять данные пользователей. Пример создания объекта класса:
$data = new WP_User( $user_id, $login, $blog_id );
Разберём аргументы в этой примере:
Название Тип Описание
$user_id число/ строка/ объект ID пользователя (обязательный параметр). Если поставить равным нулю, то будет использован второй параметр - логин. Можно испоставить объект "WP_User"
$login строка Логин пользователя. Игнорируется, если установлен первый параметр - $id
$blog_id число ID блогга при использовании "мультисайтовости". По умолчанию - текущий блог.
Приведём пример использования, модифицировав предыдущий по проверке существования пользователя с id равным 9:
$user = new WP_User( 9 );
if ( $user->exists() ) {
   echo 'Пользователь с id=9 существует!';
}
Метод "exists" не является единственным. Перечислим публичные методы класса WP_User:
Название Описание
exists() Проверяет существует пользователь в БД. Возвращает логические "true" или "false"
get($key) Получает значение указанного параметра "$key" из таблиц users или usermeta. Возвращает строку или массив
has_prop($key) Определяет есть ли у пользователя указанный параметр из таблиц users или usermeta. Возвращает логические "true" или "false"
get_role_caps() Возвращает массив из ролей пользователя и его возможностей, устанавливая свойства roles и allcaps. Личные возможности пользователей объединяются с возможности роли, при этом пользователь может не иметь отдельных возможностей роли.
add_role($role) Добавляет указанную роль пользователю ($role - строка, название роли). Обновляет данные пользователя в БД.
remove_role($role) Удаляет роль у пользователя ($role - строка, название роли). Обновляет метаданные пользователя в БД.
set_role($role) Устанавливает роль для пользователя ($role - строка, название роли). При этом будут удалены все предыдущие роли и установлена указанная. Если в $role указать пустую строку, тогда все роли будут удалены.
add_cap($cap, $grant) Добавляет возможность ($cap) для текущего пользователя ($cap - строка, название возможности).


Параметр $grant имеет логический тип. В значении "true" (по умолчанию) - разрешает доступ к возможности, "false" - запрещает. По умолчанию разрешен - "true.
remove_cap($cap) Удаляет указанную возможность у пользователя.
remove_all_caps() Удаляет все возможности пользователя.
has_cap($cap) Проверяет есть ли указанная возможность у пользователя.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: