Создание и управление пользователями

users-in-wordpress

Добавление пользователей

Чтобы добавить пользователя используйте либо wp_insert_user либо wp_create_user. wp_create_user только создает пользователя и не позволяет управлять никакими дополнительными пользовательскими полями. wp_insert_user позволяет заполнять все поля пользователя.

<?php wp_insert_user( $userdata ); ?>

Параметры

$userdata (массив) (обязательный)
Массив данных создаваемого пользователя, stdClass или WP_User объект.
По умолчанию: нет

Возвращаемые значения

В случае успеха, возвращается user_id вновь созданного пользователя, в противном случае возвращает WP_Error объект.

Примеры

Ниже пример, показывающий, как вставить нового пользователя с заполненным полем сайта в профиле:

Шаблон использования wp_insert_user

Пример создания пользователя (на основе переданных через POST запрос данных)

Аргументы параметра $userdata

ID (число)
ID пользователя. Указывается только, если надо обновить данные уже существующего пользователя. Все обязательные параметры, становятся не обязательными.

user_pass (строка) (обязательный)
Пароль для создаваемого пользователя. Хэшируется.

user_login (строка) (обязательный)
Логин нового пользователя. Для дополнительной проверки логина, можно использовать фильтр: pre_user_login

user_nicename (строка)
Имя пользователя. Если не указать, будет как логин.

user_url (строка)
Сайт. Фильтр: pre_user_url

user_email (строка)
Почта. Проверяется на существования в БД.

display_name (строка)
Отображаемое имя. Если пусто будет как логин.

nickname (строка)
Ник. Если пусто, будет как логин.

first_name (строка)
Имя.

last_name (строка)
Фамилия.

description (строка)
Немного о себе.

rich_editing (логический)
Включить (true) или нет (false) визуальный редактор. По умолчанию — true

user_registered (строка)
Дата регистрации. Формат: Y-m-d H:i:s. Если пусто, то текущая дата.

role (строка)
Роль пользователя. По умолчанию берется из настроек: get_option(‘default_role’)

jabber (строка)
Профиль.

aim (строка)
Профиль.

yim (строка)
Профиль.

Дополнительные

admin_color (строка)
Тема админки. По умолчанию fresh

show_admin_bar_front (строка)
Показывать админ бар на сайте или нет. По умолчанию true.

Хуки из функции (фрагменты строк по порядку):

При выполнении операции обновления, используя wp_insert_user, user_pass должен быть хэш пароля, а не текстовый пароль.

Создание пользователей

<?php wp_create_user( $username, $password, $email ); ?>

Описание

Функция wp_create_user позволяет вставить нового пользователя в базу данных WordPress. Она использует класс $wpdb чтобы обработать значения переменных, подготавливая их для вставки в базу данных. Затем функция PHP compact() используется для создания массива с этими значениями. Чтобы создать пользователя с дополнительными параметрами, используйте wp_insert_user().

Примеры

Пример создания нового пользователя. Сначала проверим нет ли уже пользователя с таки же именем, если нет, то генерируем пароль и создаем нового пользователя:

Параметры

$username (строка) (обязательный)
Имя создаваемого пользователя (логин).
По умолчанию: нет

$password (строка) (обязательный)
Пароль создаваемого пользователя.
По умолчанию: нет

$email (строка) (опционально)
E-mail создаваемого пользователя.
По умолчанию: нет

Возвращаемые значения

ID, если удалось добавить пользователя. Если создать не удалось (имя или email уже существуют), вернет объект error со следующими сообщениями об ошибке:

  • empty_user_login — невозможно создать пользователя, потому что логин не указан (пуст);
  • existing_user_login — такой пользователь уже зарегистрирован;
  • existing_user_email — такой email уже существует.

Обновление пользователей

<?php wp_update_user( $userdata ); ?>

Обновляет данные пользователя в базе данных. Обновляются обе таблицы wp_usermeta и wp_users. Если в $userdata не указан параметр ID, то будет создан новый пользователь с указанными данными. Если обновляется пароль текущего пользователя, то куки будут сброшены. Чтобы создать нового пользователя используйте wp_insert_user().

Параметры

$userdata (массив)
Массив данных, которые нужно обновить.
По умолчанию: нет.

Возвращает ID пользователя или WP_Error объект.

Примеры

Обновим поле website у пользователя 1:

Удаление пользователей

<?php wp_delete_user( $id, $reassign ); ?>

Описание

Удаляет пользователя. При желании, перекидывает посты и ссылки на другого пользователя. Метаданные удаляемого пользователя также удаляются.

Параметры

$id (число) (обязательный)
ID пользователя, которого нужно удалить.
По умолчанию: нет

$reassign (число)
ID пользователя на которого нужно перекинуть все посты и ссылки, удаляемого пользователя. Если не указать этот параметр, то все посты удаляемого пользователя будут также удалены.
По умолчанию: нет

Возвращает false — если не удалилось или true — если удалось удалить.

Примеры

Удалим пользователя 2 и перекинем все его посты к пользователю 4. Выведем сообщение об удалении:

Если вы хотите, чтобы использовать эту функцию в плагине, то вы должны подключить ./wp-admin/includes/user.php файл в вашей функции плагина, иначе она будет бросать ошибку «Вызов неопределенной функции».

Навигация по разделам:

Оставить комментарий

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