WordPress как на ладони
wordpress jino

wp_create_user() WP 2.0

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

Передаваемые данные очищаются классом $wpdb.

Используйте аналогичную функцию: wp_insert_user(), когда нужно указать дополнительные параметры: роль, метаполя и т.д.

Используется в: register_new_user().
Работает на основе: wp_insert_user()

Хуков нет.

Возвращает

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

  • empty_user_login — невозможно создать пользователя, потому что логин не указан (пуст);

  • existing_user_login — такой пользователь уже зарегистрирован;

  • existing_user_email — такой email уже существует.

  • подробнее см. wp_insert_user()

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

$user_id = wp_create_user( $username, $password, $email );
$username(строка) (обязательный)
Имя создаваемого пользователя (логин).
По умолчанию: нет
$password(строка) (обязательный)
Пароль создаваемого пользователя.
По умолчанию: нет
$email(строка)
E-mail создаваемого пользователя.
По умолчанию: нет

Примеры

#1. Пример создания нового пользователя.

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

$user_id = username_exists( $user_name );
if ( !$user_id ) {
	$random_password = wp_generate_password( $length=12, $include_standard_special_chars=false );
	$user_id = wp_create_user( $user_name, $random_password, $user_email );
} else {
	$random_password = 'Такой пользователь уже существует.';
}

Код wp create user: wp-includes/user.php WP 4.9

<?php
function wp_create_user($username, $password, $email = '') {
	$user_login = wp_slash( $username );
	$user_email = wp_slash( $email    );
	$user_pass = $password;

	$userdata = compact('user_login', 'user_email', 'user_pass');
	return wp_insert_user($userdata);
}

Cвязанные функции

Из метки: _user

Еще из раздела: Добавление/удаление пользователей

wp_create_user 5 комментариев
  • андрей @

    Кама, привет, зашел к тебе в надежде найти решение, как сделать регистрацию и авторизацию через телефон, вприципе все инструменты есть, вопрос один остался, как сделать создание пользователя без указание

    $email

    , а как нить так

    $user_id = wp_create_user( $user_name, $random_password);

    или пофиг создавать их всех с одним емайлом, но обойти ошибку

    existing_user_email — такой email уже сущестует.

    Можно переписать user.php, но может ты придумал какой нить красивое решение?

    Ответить5.4 лет назад #
    • Kama4558

      Вот, только что описал функцию, там все это можно сделать. Просто можно мыло не указывать: только логин и пасс...

      wp_insert_user

      П.С. Пример рабочий потом скинь сюда, добавлю в статью, в примеры...

      Ответить5.4 лет назад #
      • судя из практики с этой функцией, в поле "email" можно подсовывать к примеру тоже имя, оно потом проверяется видимо на соответствие шаблона @.** и при не удаче регает с пустым email. Ну в вордпрессе во всяком случае в админке пользователи новые есть, а их графа email - пустая .

        Ответить2 года назад #
  • Алёна

    Ухты получилось !!! shock
    Форму натянула !!! gamer

    if (isset($_POST['goo'])) {
    
    	$login =  $_POST['login']; 
    	$pass  =  $_POST['password']; 
    	$mail  =  $_POST['email'];
    
    	$user = wp_create_user($login, $pass, $mail);
    
    	 if ( is_wp_error($user) )
    		echo $user->get_error_message();
    }

    А такой вариант, не безопасно?

    Ответить1.7 года назад #

Здравствуйте, !

Ваш комментарий