wp_insert_user()

Вставляет пользователя в базу данных
Функция WordPress
INT 2.0.0
WordPress Icon

Описание функции

Функция wp_insert_user() используется для вставки нового пользователя в базу данных WordPress или обновления существующего пользователя.

Функция принимает массив, объект или объект WP_User с аргументами данных пользователя и возвращает ID только что созданного пользователя или объект WP_Error, если пользователь не может быть создан.

Использование

wp_insert_user( array|object|WP_User $userdata ): int|WP_Error

Принимает аргумент $userdata, который может быть массивом, объектом или объектом WP_User с данными пользователя.

  • $userdata (array|object|WP_User) (обязательный): Массив, объект или объект WP_User с аргументами данных пользователя.
  • ID (int): ID пользователя. Если указан, пользователь будет обновлен.
  • user_pass (string): Пароль пользователя в виде обычного текста для новых пользователей или хешированный пароль для существующих пользователей.
  • user_login (string): Логин пользователя.
  • user_nicename (string): URL-понятное имя пользователя.
  • user_url (string): URL пользователя.
  • user_email (string): Адрес электронной почты пользователя.
  • display_name (string): Отображаемое имя пользователя. По умолчанию — логин пользователя.
  • nickname (string): Псевдоним пользователя. По умолчанию — логин пользователя.
  • first_name (string): Имя пользователя. Используется для создания первой части отображаемого имени пользователя, если не указано $display_name.
  • last_name (string): Фамилия пользователя. Используется для создания второй части отображаемого имени пользователя, если не указано $display_name.
  • description (string): Биографическое описание пользователя.
  • rich_editing (string): Включить ли редактор для пользователя. Принимает ‘true’ или ‘false’ в виде строки, а не логическое значение. По умолчанию ‘true’.
  • syntax_highlighting (string): Включить ли редактор кода для пользователя. Принимает ‘true’ или ‘false’ в виде строки, а не логическое значение. По умолчанию ‘true’.
  • comment_shortcuts (string): Включить ли клавиатурные ярлыки для модерации комментариев для пользователя. Принимает ‘true’ или ‘false’ в виде строки, а не логическое значение. По умолчанию ‘false’.
  • admin_color (string): Цветовая схема администратора для пользователя. По умолчанию ‘fresh’.
  • use_ssl (bool): Должен ли пользователь всегда получать доступ к административной панели через https. По умолчанию false.
  • user_registered (string): Дата регистрации пользователя в формате ‘Y-m-d H:i:s’ в часовом поясе UTC.
  • user_activation_key (string): Ключ сброса пароля. По умолчанию пусто.
  • spam (bool): Только для мультисайтов. Отмечен ли пользователь как спам. По умолчанию false.
  • show_admin_bar_front (string): Отображать ли панель администратора для пользователя на фронтенде сайта. Принимает ‘true’ или ‘false’ в виде строки, а не логическое значение. По умолчанию ‘true’.
  • role (string): Роль пользователя.
  • locale (string): Локаль пользователя. По умолчанию пусто.
  • meta_input (array): Массив значений пользовательских метаданных пользователя, ключи — мета ключи. По умолчанию пусто.

Функция возвращает ID только что созданного пользователя или объект WP_Error, если пользователь не может быть создан.

<?php
// Создание нового пользователя
$user_data = array(
    'user_login'    => 'johndoe',
    'user_pass'     => 'password123',
    'user_email'    => 'johndoe@example.com',
    'display_name'  => 'John Doe',
    'role'          => 'subscriber'
);
$user_id = wp_insert_user( $user_data );
if ( ! is_wp_error( $user_id ) ) {
    echo 'Пользователь успешно создан. ID пользователя: ' . $user_id;
} else {
    echo 'Ошибка при создании пользователя: ' . $user_id->get_error_message();
}
?>

В этом примере мы создаем нового пользователя с логином «johndoe», паролем «password123», адресом электронной почты «johndoe@example.com», отображаемым именем «John Doe» и ролью «subscriber». Функция wp_insert_user() возвращает ID только что созданного пользователя, который мы выводим на экран. Если возникает ошибка при создании пользователя, мы выводим сообщение об ошибке.

Примеры использования

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


// Создание нового пользователя
$user_data = array(
    'user_login'    => 'new_user',
    'user_pass'     => 'password123',
    'user_email'    => 'new_user@example.com',
    'display_name'  => 'New User'
);
$user_id = wp_insert_user( $user_data );
if ( ! is_wp_error( $user_id ) ) {
    echo 'Новый пользователь успешно создан. ID пользователя: ' . $user_id;
} else {
    echo 'Ошибка при создании пользователя: ' . $user_id->get_error_message();
}

Обновление данных пользователя


// Обновление данных пользователя
$user_id = 123; // ID пользователя, которого нужно обновить
$user_data = array(
    'ID'            => $user_id,
    'user_email'    => 'updated_email@example.com',
    'display_name'  => 'Updated User'
);
$result = wp_insert_user( $user_data );
if ( ! is_wp_error( $result ) ) {
    echo 'Данные пользователя успешно обновлены. ID пользователя: ' . $result;
} else {
    echo 'Ошибка при обновлении данных пользователя: ' . $result->get_error_message();
}

Установка пароля для пользователя


// Установка пароля для пользователя
$user_id = 123; // ID пользователя, которому нужно установить пароль
$user_data = array(
    'ID'            => $user_id,
    'user_pass'     => 'new_password123'
);
$result = wp_insert_user( $user_data );
if ( ! is_wp_error( $result ) ) {
    echo 'Пароль пользователя успешно обновлен. ID пользователя: ' . $result;
} else {
    echo 'Ошибка при установке пароля пользователя: ' . $result->get_error_message();
}

Изменение цветовой схемы администратора


// Изменение цветовой схемы администратора
$user_id = 123; // ID пользователя, для которого нужно изменить цветовую схему
$user_data = array(
    'ID'            => $user_id,
    'admin_color'   => 'sunrise' // Новая цветовая схема администратора
);
$result = wp_insert_user( $user_data );
if ( ! is_wp_error( $result ) ) {
    echo 'Цветовая схема администратора успешно изменена. ID пользователя: ' . $result;
} else {
    echo 'Ошибка при изменении цветовой схемы администратора: ' . $result->get_error_message();
}

Включение/отключение редактора кода для пользователя


// Включение/отключение редактора кода для пользователя
$user_id = 123; // ID пользователя, для которого нужно включить/отключить редактор кода
$user_data = array(
    'ID'                => $user_id,
    'rich_editing'      => 'false' // Отключение редактора кода для пользователя
);
$result = wp_insert_user( $user_data );
if ( ! is_wp_error( $result ) ) {
    echo 'Редактор кода успешно включен/отключен для пользователя. ID пользователя: ' . $result;
} else {
    echo 'Ошибка при изменении настроек редактора кода для пользователя: ' . $result->get_error_message();
}

Вопросы и ответы

Как создать нового пользователя в WordPress?

Для создания нового пользователя в WordPress используется функция wp_insert_user(). Она принимает аргумент $userdata, который может быть массивом, объектом или экземпляром класса WP_User. Этот аргумент содержит данные о пользователе, такие как логин, пароль, электронная почта и т.д.

Пример использования функции wp_insert_user() для создания нового пользователя:


$userdata = array(
    'user_login'  =>  'johndoe',
    'user_pass'   =>  'password123',
    'user_email'  =>  'johndoe@example.com',
    'display_name' => 'John Doe'
);
$user_id = wp_insert_user( $userdata );
if ( ! is_wp_error( $user_id ) ) {
    echo 'User created successfully. ID: ' . $user_id;
} else {
    echo 'Error creating user: ' . $user_id->get_error_message();
}

Как обновить данные существующего пользователя?

Для обновления данных существующего пользователя также используется функция wp_insert_user(). Она принимает аргумент $userdata, в котором указывается ID пользователя, чьи данные нужно обновить.

Пример использования функции wp_insert_user() для обновления данных пользователя:


$userdata = array(
    'ID'           =>  123,
    'user_email'  =>  'newemail@example.com',
    'display_name' => 'New Display Name'
);
$user_id = wp_insert_user( $userdata );
if ( ! is_wp_error( $user_id ) ) {
    echo 'User updated successfully. ID: ' . $user_id;
} else {
    echo 'Error updating user: ' . $user_id->get_error_message();
}

Как задать пароль для нового пользователя?

При создании нового пользователя в WordPress можно задать пароль с помощью функции wp_insert_user(). В аргументе $userdata указывается поле user_pass с паролем пользователя в виде обычного текста.

Пример использования функции wp_insert_user() для создания нового пользователя с заданным паролем:


$userdata = array(
    'user_login'  =>  'johndoe',
    'user_pass'   =>  'password123',
    'user_email'  =>  'johndoe@example.com',
    'display_name' => 'John Doe'
);
$user_id = wp_insert_user( $userdata );
if ( ! is_wp_error( $user_id ) ) {
    echo 'User created successfully. ID: ' . $user_id;
} else {
    echo 'Error creating user: ' . $user_id->get_error_message();
}

Как изменить пароль существующего пользователя?

Для изменения пароля существующего пользователя в WordPress используется функция wp_insert_user(). В параметрах функции необходимо указать ID пользователя, которому нужно изменить пароль, а также новый пароль.


$user_id = 123; // ID пользователя
$new_password = 'new_password'; // Новый пароль
// Получаем данные пользователя
$user_data = get_userdata($user_id);
// Обновляем данные пользователя
$user_data->user_pass = wp_hash_password($new_password);
// Обновляем пользователя в базе данных
wp_insert_user($user_data);

Как задать роль пользователю при создании?

При создании нового пользователя в WordPress с помощью функции wp_insert_user() можно задать ему роль. Для этого в параметрах функции необходимо указать ключ 'role' со значением желаемой роли.


$user_data = array(
    'user_login' => 'new_user',
    'user_pass' => 'password',
    'role' => 'editor' // Желаемая роль
);
// Создаем нового пользователя
$user_id = wp_insert_user($user_data);

Как изменить роль существующего пользователя?

Для изменения роли существующего пользователя в WordPress используется функция wp_insert_user(). В параметрах функции необходимо указать ID пользователя, которому нужно изменить роль, а также новую роль.


$user_id = 123; // ID пользователя
$new_role = 'author'; // Новая роль
// Получаем данные пользователя
$user_data = get_userdata($user_id);
// Обновляем данные пользователя
$user_data->role = $new_role;
// Обновляем пользователя в базе данных
wp_insert_user($user_data);

Как задать дополнительные метаданные для нового пользователя?

Для задания дополнительных метаданных для нового пользователя в функцию wp_insert_user() необходимо передать аргумент meta_input в виде массива, где ключами будут являться названия метаданных, а значениями — сами данные.


$userdata = array(
    'user_login'  =>  'example_user',
    'user_pass'   =>  'example_password',
    'user_email'  =>  'example@example.com',
    'meta_input'  =>  array(
        'first_name'  =>  'John',
        'last_name'   =>  'Doe',
        'age'         =>  30
    )
);
$new_user_id = wp_insert_user( $userdata );

Как получить ID нового пользователя после создания?

После создания нового пользователя с помощью функции wp_insert_user(), можно получить его ID, используя возвращаемое значение функции.


$userdata = array(
    'user_login'  =>  'example_user',
    'user_pass'   =>  'example_password',
    'user_email'  =>  'example@example.com'
);
$new_user_id = wp_insert_user( $userdata );
if ( ! is_wp_error( $new_user_id ) ) {
    echo 'ID нового пользователя: ' . $new_user_id;
}

Как обработать ошибку при создании пользователя?

При создании пользователя с помощью функции wp_insert_user() может возникнуть ошибка. Для обработки ошибки необходимо проверить возвращаемое значение функции на наличие объекта WP_Error.


$userdata = array(
    'user_login'  =>  'example_user',
    'user_pass'   =>  'example_password',
    'user_email'  =>  'example@example.com'
);
$result = wp_insert_user( $userdata );
if ( is_wp_error( $result ) ) {
    $error_message = $result->get_error_message();
    echo 'Ошибка при создании пользователя: ' . $error_message;
}

Функция wp_insert_user() позволяет создавать новых пользователей в базе данных WordPress. Она принимает аргументы с данными пользователя, такие как логин, пароль, email и другие. В случае успешного создания пользователя, функция возвращает его ID, а в случае ошибки — объект WP_Error. Дополнительные метаданные для нового пользователя можно задать с помощью аргумента meta_input. Для обработки ошибки при создании пользователя необходимо проверить возвращаемое значение функции на наличие объекта WP_Error.

Связанные элементы

  • Функция wp_update_user(): обновляет данные пользователя в базе данных.
  • Функция wp_delete_user(): удаляет пользователя из базы данных.
  • Функция wp_get_current_user(): возвращает объект текущего пользователя.
  • Функция wp_set_current_user(): устанавливает текущего пользователя.
  • Хук pre_user_login: позволяет изменить логин пользователя перед сохранением.
  • Хук pre_user_nicename: позволяет изменить URL-дружественное имя пользователя перед сохранением.
  • Хук pre_user_email: позволяет изменить email пользователя перед сохранением.
  • Хук pre_user_display_name: позволяет изменить отображаемое имя пользователя перед сохранением.
  • Класс WP_User_Query: выполняет запросы к базе данных для получения пользователей.
Обсуждение