Пользователи в 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мотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб