Quantcast
Viewing all articles
Browse latest Browse all 10

wp_insert_user

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.

Viewing all articles
Browse latest Browse all 10

Trending Articles