Получение данных пользователя с помощью функции get_userdata() в WordPress
Функция get_userdata() позволяет получить данные пользователя по его идентификатору (ID) и возвращает объект класса WP_User. Данные, которые вы получите, полностью соответствуют полям в таблицах базы данных wp_users и wp_usermeta.
Поля таблиц wp_users и wp_usermeta
Вот некоторые полезные поля, которые можно найти в этих таблицах:
Таблица wp_users
| Поле | Описание |
|---|---|
| ID | Уникальный идентификатор пользователя |
| user_login | Логин пользователя |
| user_pass | Пароль пользователя |
| user_nicename | Нормализованный логин |
| user_email | Электронная почта |
| user_url | Веб-сайт пользователя |
| user_registered | Дата регистрации |
| display_name | Имя, отображаемое в интерфейсе |
Таблица wp_usermeta
| Поле | Описание |
|---|---|
| user_firstname | Имя пользователя |
| user_lastname | Фамилия пользователя |
| nickname | Псевдоним пользователя |
| user_description | Описание пользователя |
| wp_capabilities | Массив прав пользователя |
| admin_color | Тема панели администратора |
| primary_blog | Основной блог |
| rich_editing | Поддержка визуального редактора |
Плагинные функции
Функция get_userdata() является плагинной функцией, что означает, что её можно заменить с помощью плагинов. Она работает только после загрузки всех плагинов, поэтому вы не можете вызывать её непосредственно из кода плагина. Вместо этого вызывайте её на хуке plugins_loaded или позже, например, на хуке init.
Использование функции
Синтаксис
get_userdata( $user_id );
- $user_id (int) (обязательный) — идентификатор пользователя.
Примеры использования
Пример 1: Вывод данных пользователя
$user_info = get_userdata(1);
echo 'Логин пользователя: ' . $user_info->user_login . "n";
echo 'Уровень доступа: ' . $user_info->user_level . "n";
echo 'ID: ' . $user_info->ID . "n";
/* Результат:
Логин пользователя: admin
Уровень доступа: 10
ID: 1
*/
Пример 2: Запись данных в переменные
$user = get_userdata(1);
$username = $user->user_login;
$first_name = $user->first_name; // Данные из usermeta
$last_name = $user->last_name; // Данные из usermeta
echo "$first_name $last_name вошел на сайт с логином $username.";
/*
Объект пользователя:
WP_User Object(
[data] => stdClass Object(
[ID] => 80
[user_login] => kogian
[user_email] => email@example.com
[display_name] => kogian
)
[ID] => 80
[caps] => Array(
[subscriber] => 1
)
[roles] => Array(
[0] => subscriber
)
)
*/
Пример 3: Методы класса WP_User
Объект, полученный с помощью get_userdata(), является экземпляром класса WP_User, и у него есть несколько полезных методов. Пример получения опции пользователя:
$user = get_userdata(1);
echo $username = $user->get('user_login');
Вот список некоторых полезных методов:
| Метод | Описание |
|---|---|
WP_User::get( $key ) |
Получает значение свойства или мета-ключа. |
WP_User::has_prop( $key ) |
Проверяет, задано ли свойство или мета-ключ. |
WP_User::has_cap( $cap, ...$args ) |
Определяет, имеет ли пользователь указанные права. |
WP_User::add_role( $role ) |
Добавляет роль пользователю. |
WP_User::remove_role( $role ) |
Удаляет роль у пользователя. |
WP_User::set_role( $role ) |
Устанавливает роль пользователю. |
Заключение
Функция get_userdata() — это мощный инструмент для работы с данными пользователей в WordPress. Она позволяет не только получать информацию о пользователе, но и управлять правами и ролями. Используйте её для создания удобных и функциональных интерфейсов на вашем сайте!