WordPress.org

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Справочник по функциям/wp insert user

Описание

Вставляет данные пользователя в Базу Данных. Создает/обновляет пользователя.Укажите ID существующего пользователя и данные, если нужно обновить данные пользователя, а не создавать нового.wp_insert_user() используется в: wp_update_user(), wp_create_user().

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

<?php wp_insert_user( $userdata ) ?>

Параметры

$userdata
(mixed) (required) Массив из данных пользователя, stdClass или обьект WP_User.
Default: None

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

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

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

<?php 
      
    $userdata = array(  
        'ID' => 0  
        ,'user_pass' => '' //обязательно  
        ,'user_login' => '' //обязательно  
        ,'user_nicename' => ''  
        ,'user_url' => ''  
        ,'user_email' => ''  
        ,'display_name' => ''  
        ,'nickname' => ''  
        ,'first_name' => ''  
        ,'last_name' => ''  
        ,'description' => ''  
        ,'rich_editing' => true  // false - выключить визуальный редактор для пользователя.  
        ,'user_registered' => '' // дата регистрации (Y-m-d H:i:s)  
        ,'role' => '' // (строка) роль пользвателя  
        ,'jabber' => ''  
        ,'aim' => ''  
        ,'yim' => ''  
    );  
      
    wp_insert_user( $userdata );  
?>

Журнал изменений

С версии 2.7.1 эта функция не хэширует пароль, потому для обновления пароля, используйте: wp_update_user().

Примечания

Параметры

$userdata (массив) (обязательный) Массив данных создаваемого пользователя. По умолчанию: по умолчанию Аргументы параметра $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. Примеры

1. Обновим поле Веб-сайт у пользователя 1:

<?php  
    $user_id = 1;  
    $website = 'http://wordpress.org';  
    wp_insert_user( array ('ID' => $user_id, 'user_url' => $website) ) ;  
?>


На заметку

Используются фильтры (pre_ - фильтр срабатывает до использования значения, все фильтры передают значение параметра):

   pre_user_user_pass
   pre_user_user_login
   pre_user_user_nicename
   pre_user_user_url
   pre_user_user_email
   pre_user_display_name
   pre_user_nickname
   pre_user_first_name
   pre_user_last_name
   pre_user_description

user_register - срабатывает после добавления пользователя. Передает ID.

wp_insert_user() из файла: /wp-includes/user.php WP 3.4

   function wp_insert_user($userdata) {  
       global $wpdb;  
     
       extract($userdata, EXTR_SKIP);  
 
       // Are we updating or creating?  
       if ( !empty($ID) ) {  
           $ID = (int) $ID;  
           $update = true;  
           $old_user_data = WP_User::get_data_by( 'id', $ID );  
       } else {  
           $update = false;  
           // Hash the password  
           $user_pass = wp_hash_password($user_pass);  
       }  
 
       $user_login = sanitize_user($user_login, true);  
       $user_login = apply_filters('pre_user_login', $user_login);  
 
       //Remove any non-printable chars from the login string to see if we have ended up with an empty username  
       $user_login = trim($user_login);  
 
       if ( empty($user_login) )  
           return new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.') );  
 
       if ( !$update && username_exists( $user_login ) )  
           return new WP_Error('existing_user_login', __('This username is already registered.') );  
 
       if ( empty($user_nicename) )  
           $user_nicename = sanitize_title( $user_login );  
       $user_nicename = apply_filters('pre_user_nicename', $user_nicename);  
 
       if ( empty($user_url) )  
           $user_url = ;  
       $user_url = apply_filters('pre_user_url', $user_url);  
 
       if ( empty($user_email) )  
           $user_email = ;  
       $user_email = apply_filters('pre_user_email', $user_email);  
 
       if ( !$update && ! defined( 'WP_IMPORTING' ) && email_exists($user_email) )  
           return new WP_Error('existing_user_email', __('This email address is already registered.') );  
 
       if ( empty($display_name) )  
           $display_name = $user_login;  
       $display_name = apply_filters('pre_user_display_name', $display_name);  
     
       if ( empty($nickname) )  
           $nickname = $user_login;  
       $nickname = apply_filters('pre_user_nickname', $nickname);  
     
       if ( empty($first_name) )  
           $first_name = ;  
       $first_name = apply_filters('pre_user_first_name', $first_name);  
     
       if ( empty($last_name) )  
       $last_name = ;  
       $last_name = apply_filters('pre_user_last_name', $last_name);  
     
       if ( empty($description) )  
           $description = ;  
       $description = apply_filters('pre_user_description', $description);  
 
       if ( empty($rich_editing) )  
           $rich_editing = 'true';  
     
       if ( empty($comment_shortcuts) )  
           $comment_shortcuts = 'false';  
 
       if ( empty($admin_color) )  
           $admin_color = 'fresh';  
       $admin_color = preg_replace('|[^a-z0-9 _.\-@]|i', , $admin_color);  
     
       if ( empty($use_ssl) )  
           $use_ssl = 0;  
     
       if ( empty($user_registered) )  
           $user_registered = gmdate('Y-m-d H:i:s');  
     
       if ( empty($show_admin_bar_front) )  
           $show_admin_bar_front = 'true';  
     
       $user_nicename_check = $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->users WHERE     user_nicename = %s AND user_login != %s LIMIT 1" , $user_nicename, $user_login));  
     
       if ( $user_nicename_check ) {  
       $suffix = 2;  
           while ($user_nicename_check) {  
               $alt_user_nicename = $user_nicename . "-$suffix";  
               $user_nicename_check = $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->users     WHERE user_nicename = %s AND user_login != %s LIMIT 1" , $alt_user_nicename, $user_login));  
               $suffix++;  
           }  
           $user_nicename = $alt_user_nicename;  
       }  
     
       $data = compact( 'user_pass', 'user_email', 'user_url', 'user_nicename', 'display_name',     'user_registered' );  
       $data = stripslashes_deep( $data );  
     
       if ( $update ) {  
           $wpdb->update( $wpdb->users, $data, compact( 'ID' ) );  
           $user_id = (int) $ID;  
       } else {  
           $wpdb->insert( $wpdb->users, $data + compact( 'user_login' ) );  
           $user_id = (int) $wpdb->insert_id;  
       }  
     
       $user = new WP_User( $user_id );  
     
       foreach ( _get_additional_user_keys( $user ) as $key ) {  
           if ( isset( $$key ) )  
               update_user_meta( $user_id, $key, $$key );  
       }  
     
       if ( isset($role) )  
           $user->set_role($role);  
       elseif ( !$update )  
           $user->set_role(get_option('default_role'));  
     
       wp_cache_delete($user_id, 'users');  
       wp_cache_delete($user_login, 'userlogins');  
     
       if ( $update )  
           do_action('profile_update', $user_id, $old_user_data);  
       else  
           do_action('user_register', $user_id);  
     
       return $user_id;  
   }