WordPress создать пользователя php

Пользователи в WordPress (часть 1)

Первый аргумент «$login» (является строкой) — это логин пользователя. Второй параметр «$pass» является паролем, а третий «$email» — это почтовый адрес пользователя. Все аргументы кроме «$email» являются обязательными для создания пользователя.

  • empty_user_login — не указан логин нового пользователя
  • existing_user_login — пользователь с таким логином уже существует
  • existing_user_email — пользователь с таким почтовым адресом уже сущесвтует
$user_id = wp_create_user( 'mouse', 'cheese', 'support@mousedc.ru' ); if( !is_wp_error( $user_id ) ) < echo 'Пользователь успешно создан. Его ID' =>1, // ID пользователя, данные которого обновляются. 'first_name' => 'Имя', 'last_name' => 'Фамилия' ); $user_id = wp_update_user( $data ); if( !is_wp_error( $user_id ) ) < echo 'Данные пользователя c успешно изменены.'; >else < echo $user_id->get_error_message(); >

Разберём все возможные ключи массива первого аргумента:

Название тип описание
ID число ID пользователя.
user_pass строка Пароль пользователя.
user_login строка Логин пользователя.
user_nicename строка Имя пользователя. Совпадает с логином, если не указано.
user_url строка Адрес сайта
user_email строка Почтовый адрес (мэйл).
display_name строка Отображаемое имя. Совпадает с логином, если не указано.
nickname строка Ник. Совпадает с логином, если не указано.
first_name строка Имя.
last_name строка Фамилия.
description строка Поле «немного о себе».
rich_editing строка/ логический Использовать ли визуальный редактор. По умолчанию «true» — использовать
syntax_highlighting строка/ логический Включить ли подсветку синтаксиса для визуального редактора.
comment_shortcuts строка/ логический Использовать ли клавиши модерации комментариев. По умолчанию «false» — отключено
admin_color строка Особый цвет панели администрирования. По умолчанию: «fresh»
use_ssl строка/ логический Заставлять ли пользователя использовать только защищённое соединение при авторизации (https). По умолчанию «false» — не заставлять
user_registered строка Дата регистрации в формате «Y-m-d H:i:s». Если не указать, то будет использована текущая дата (по Гринвичу).
show_admin_bar_front строка Показывать ли бар администратора (полоска сверху). По умолчанию «true» — показывать
role строка Роль пользователя.
locale строка Язык пользователя. К примеру: «ru_RU». По умолчанию пустое значение
Читайте также:  Resources demos style css jquery ui

Обновление или добавление пользователя «wp_insert_user»

Функция «wp_insert_user» умеет и добавлять, и обновлять данные пользователей. Она принимает только один аргумент — массив параметров, которые нужно обновить (см. таблицу из предыдущего абзаца):

Если в массиве «$data» передать ключ «ID», то пользователь будет обновлён. Если не передать, то будет создан новый пользователь. В случае успешного обновления или добавления пользователя функция возвращает ID. Если в процессе работы функции произошла ошибка, то вернётся объект «WP_Error».

Источник

wp_create_user() │ WP 2.0.0

Регистрирует нового пользователя. Указываются логин (имя), пароль и email. Все что делает функция — это добавляет слэши в логин/email и вызывает wp_insert_user() .

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

Возвращает

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

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

$user_id = wp_create_user( $username, $password, $email );

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

Примеры

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

Если WordPress не сможет создать пользователя, то он вернет объект ошибки, выведем в этом случае сообщение из этого объекта:

$random_password = wp_generate_password( 12 ); $user_id = wp_create_user( $user_name, $random_password, $user_email ); if ( is_wp_error( $user_id ) ) < echo $user_id->get_error_message(); > else

Заметки

Список изменений

Код wp_create_user() wp create user WP 6.2.2

function wp_create_user( $username, $password, $email = » )

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

Пользователи (_user)

  • clean_user_cache()
  • current_user_can()
  • delete_user_option()
  • get_current_user_id()
  • get_edit_user_link()
  • get_user_by()
  • get_user_option()
  • get_userdata()
  • get_users()
  • is_user_logged_in()
  • wp_get_current_user()
  • wp_insert_user()
  • wp_list_users()
  • wp_set_current_user()
  • wp_update_user()
  • WP_User()

Добавление/удаление юзеров

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

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

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

судя из практики с этой функцией, в поле «email» можно подсовывать к примеру тоже имя, оно потом проверяется видимо на соответствие шаблона @.** и при не удаче регает с пустым email. Ну в вордпрессе во всяком случае в админке пользователи новые есть, а их графа email — пустая .

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(); >

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

Нет, это низкоуровневое создание пользователя. Письмо будет оправлено автоматически если использовать register_new_user(), которая среди прочих использует и эту функцию. В частности, это собитие висит на хуке

add_action( 'register_new_user', 'wp_send_new_user_notifications' );

Как реализовать возможность использования кириллицы в Username при использовании функции WP wp_create_user(). Сразу отмечу, что плагин Allow Cyrillic Usernames не помогает при регистрации пользователей через эту функцию. То есть, плагин помогает, и ошибки не возникает, но пользователь не регистрируется, а функция возвращает не ошибку, а 0, как id пользователя.

Любой дурак напишет код, который поймет машина. Хорошие программисты пишут понятно для человека. © Martin Fowler

Источник

register_new_user() │ WP 2.5.0

Регистрирует нового пользователя. Указываются только логин и email. Проверяет переданные параметры, генерирует пароль и вызывает функцию wp_create_user() .

На хуке register_new_user отправляет пользователю email об успешной регистрации. Если такое уведомление не требуется, для создания пользователей используйте функции wp_create_user() или wp_insert_user().

Хуки из функции

Возвращает

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

register_new_user( $user_login, $user_email );

$user_login(строка) (обязательный) Логин пользователя, в дальнейшем будет использоваться для входа через форму авторизации. $user_email(строка) (обязательный) Email пользователя. На него, после завершения регистрации, пользователь получит письмо о регистрации с логином и паролем для входа.

Примеры

#1 Упрощенный пример использования из wp-login.php

$user_login = isset( $_POST[‘user_login’] ) ? $_POST[‘user_login’] : »; $user_email = isset( $_POST[‘user_email’] ) ? $_POST[‘user_email’] : »; $user_id = register_new_user( $user_login, $user_email ); if ( ! is_wp_error($user_id) )

#2 Создаем пользователя с логином test и почтой **test@example.com

register_new_user( 'test', 'test@example.com' );

Список изменений

Код register_new_user() register new user WP 6.2.2

function register_new_user( $user_login, $user_email ) < $errors = new WP_Error(); $sanitized_user_login = sanitize_user( $user_login ); /** * Filters the email address of a user being registered. * * @since 2.1.0 * * @param string $user_email The email address of the new user. */ $user_email = apply_filters( 'user_registration_email', $user_email ); // Check the username. if ( '' === $sanitized_user_login ) < $errors->add( 'empty_username', __( 'Error: Please enter a username.' ) ); > elseif ( ! validate_username( $user_login ) ) < $errors->add( 'invalid_username', __( 'Error: This username is invalid because it uses illegal characters. Please enter a valid username.' ) ); $sanitized_user_login = ''; > elseif ( username_exists( $sanitized_user_login ) ) < $errors->add( 'username_exists', __( 'Error: This username is already registered. Please choose another one.' ) ); > else < /** This filter is documented in wp-includes/user.php */ $illegal_user_logins = (array) apply_filters( 'illegal_user_logins', array() ); if ( in_array( strtolower( $sanitized_user_login ), array_map( 'strtolower', $illegal_user_logins ), true ) ) < $errors->add( 'invalid_username', __( 'Error: Sorry, that username is not allowed.' ) ); > > // Check the email address. if ( '' === $user_email ) < $errors->add( 'empty_email', __( 'Error: Please type your email address.' ) ); > elseif ( ! is_email( $user_email ) ) < $errors->add( 'invalid_email', __( 'Error: The email address is not correct.' ) ); $user_email = ''; > elseif ( email_exists( $user_email ) ) < $errors->add( 'email_exists', sprintf( /* translators: %s: Link to the login page. */ __( 'Error: This email address is already registered. Log in with this address or choose another one.' ), wp_login_url() ) ); > /** * Fires when submitting registration form data, before the user is created. * * @since 2.1.0 * * @param string $sanitized_user_login The submitted username after being sanitized. * @param string $user_email The submitted email. * @param WP_Error $errors Contains any errors with submitted username and email, * e.g., an empty field, an invalid username or email, * or an existing username or email. */ do_action( 'register_post', $sanitized_user_login, $user_email, $errors ); /** * Filters the errors encountered when a new user is being registered. * * The filtered WP_Error object may, for example, contain errors for an invalid * or existing username or email address. A WP_Error object should always be returned, * but may or may not contain errors. * * If any errors are present in $errors, this will abort the user's registration. * * @since 2.1.0 * * @param WP_Error $errors A WP_Error object containing any errors encountered * during registration. * @param string $sanitized_user_login User's username after it has been sanitized. * @param string $user_email User's email. */ $errors = apply_filters( 'registration_errors', $errors, $sanitized_user_login, $user_email ); if ( $errors->has_errors() ) < return $errors; >$user_pass = wp_generate_password( 12, false ); $user_id = wp_create_user( $sanitized_user_login, $user_pass, $user_email ); if ( ! $user_id || is_wp_error( $user_id ) ) < $errors->add( 'registerfail', sprintf( /* translators: %s: Admin email address. */ __( 'Error: Could not register you… please contact the site admin!' ), get_option( 'admin_email' ) ) ); return $errors; > update_user_meta( $user_id, 'default_password_nag', true ); // Set up the password change nag. if ( ! empty( $_COOKIE['wp_lang'] ) ) < $wp_lang = sanitize_text_field( $_COOKIE['wp_lang'] ); if ( in_array( $wp_lang, get_available_languages(), true ) ) < update_user_meta( $user_id, 'locale', $wp_lang ); // Set user locale if defined on registration. >> /** * Fires after a new user registration has been recorded. * * @since 4.4.0 * * @param int $user_id ID of the newly registered user. */ do_action( 'register_new_user', $user_id ); return $user_id; >

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

Добавление/удаление юзеров

Источник

Оцените статью