Definition:
function wp_insert_user($userdata) {}
Insert an user into the database.
Can update a current user or insert a new user based on whether the user’s ID is present.
Parameters
- array $userdata: An array of user data.
Return values
returns:The newly created user’s ID or a WP_Error object if the user could not be created.
Defined filters
- pre_user_login
apply_filters('pre_user_login', $user_login)
- pre_user_nicename
apply_filters('pre_user_nicename', $user_nicename)
- pre_user_url
apply_filters('pre_user_url', $user_url)
- pre_user_email
apply_filters('pre_user_email', $user_email)
- pre_user_display_name
apply_filters('pre_user_display_name', $display_name)
- pre_user_nickname
apply_filters('pre_user_nickname', $nickname)
- pre_user_first_name
apply_filters('pre_user_first_name', $first_name)
- pre_user_last_name
apply_filters('pre_user_last_name', $last_name)
- pre_user_description
apply_filters('pre_user_description', $description)
Defined actions
- profile_update
do_action('profile_update', $user_id, $old_user_data);
- user_register
do_action('user_register', $user_id);
Source code
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; }
10807
Filed under: /wp-includes/user.php, Actions, Actions by letter p, Actions by letter u, Documentation, Files, Filters, Filters by letter p, Functions, Functions by letter w Tagged: codex, idd122a6361f7b0947d627034fdcc8ad16, pre_user_description, pre_user_display_name, pre_user_email, pre_user_first_name, pre_user_last_name, pre_user_login, pre_user_nicename, pre_user_nickname, pre_user_url, profile_update, user_register, wp_insert_user Image may be NSFW.
Clik here to view.
