Возможно, что когда-нибудь вам понадобиться программно создавать пользователей в WordPress. Существует два способа сделать это. Первый способ использует wp_create_user(), второй же — wp_insert_user().
Создаем нового пользователя с wp_create_user()
Самый простой способ создания нового пользователя WordPress — использовать функцию WP — wp_create_user(). Вот так выглядит основной алгоритм:
$user_login = 'user_login'; $user_pass = md5($user_pass); $user_email = 'user_email@example.com'; $user_id = wp_create_user($user_login, $user_pass, $user_email);
Прелесть этого способа в его простоте. Функция wp_create_user() принимает только три аргумента — имя, пароль, и email — поэтому можно быстро и просто внедрить ее в любом месте. После завершения функция возвращает либо ID нового пользователя, либо ошибку. Поэтому вы сможете проверить успешно ли создан пользователь вот так:
if (is_wp_error($user_id)) { echo 'Error '. $user_id->get_error_code() .': '. $user_id->get_error_message(); }
Вот здесь можно ознакомиться с вышеприведенными функциями WordPress для проверки и вывода любых ошибок:
- WP Codex: is_wp_error()
- WP Codex: get_error_code()
- WP Codex: get_error_message()
Создаем нового пользователя с помощью wp_insert_user()
Если простота wp_create_user() вам не подходит, тогда ознакомьтесь с функцией wp_insert_user(). С поомощью wp_insert_user() вы можете настроить больше параметров, чем просто имя, почта и пароль. По сути, вы можете передавать любой массив параметров, и даже использовать WP_User object. Вот пример ее использования:
if (email_exists($user_email)) { echo '<p>Email уже зарегистрирован: '. $user_email .'</p>'; } elseif (username_exists($user_login)) { echo '<p>Имя пользователя уже зарегистрировано: '. $user_login .'</p>'; } else { $user_pass = wp_generate_password(16, false); $user_id = wp_insert_user( array( 'user_email' => $user_email, 'user_login' => $user_login, 'user_pass' => $user_pass, 'user_url' => $user_url, 'first_name' => $first_name, 'last_name' => $last_name, 'role' => $role, ) ); }
Ознакомиться с использованными функциями можно в Кодексе WordPress:
- wp_insert_user()
- email_exists()
- username_exists()
- wp_generate_password()
Примечания
Если вы захотите обновить данные существующего пользователя, тогда стоит воспользоваться функцией wp_update_user().
Для того, чтобы использовать любую из этих функций — wp_create_user() или wp_insert_user() — за «пределами» плагина или темы, необходимо будет инклудить следующие файлы WordPress:
require_once('wp-blog-header.php');
require_once('wp-includes/registration.php');
Укажите правильные пути к файлам, если они располагаются в нестандартном месте.
Вот и все, мы надеемся, что эта статья помогла вам научиться программно создавать пользователей в WordPress.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.