Получение данных пользователя: функция get_userdata() в WordPress

Получение данных пользователя с помощью функции 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. Она позволяет не только получать информацию о пользователе, но и управлять правами и ролями. Используйте её для создания удобных и функциональных интерфейсов на вашем сайте!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *