WordPress как на ладони
wordpress jino

wp_insert_user() WP 2.0

Вставляет данные пользователя в Базу Данных. Создает/обновляет пользователя.

Функция умеет обновлять данные существующего пользователя. Для этого нужно указать ID пользователя в передаваемых данных, в поле 'ID'.

Для обновления существующего пользователя, используйте: wp_update_user(), потому что эта функция не хэширует (скрывает) пароль.

Все логические значения в параметрах нужно передавать в виде строки: 'true' или 'false', потому что так они записываются в метаполя.

Используется в: wp_update_user(), wp_create_user().
Хуки из функции:
Возвращает

Число/WP_Error.

  • ID созданного пользователя.
  • WP_Error — если запрос провалился:

    • если логин слишком длинный
    • если юзер с таким логином уже есть
    • если в логине есть недопустимые символы или логин пустой
    • если указанный email уже существует
    • если указан ID юзера для обновления, а такого юзера в БД нет.

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

wp_insert_user( $userdata );

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

$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) в GMT
	'role'            => '', // (строка) роль пользователя
	'jabber'          => '',
	'aim'             => '',
	'yim'             => '',

);

wp_insert_user( $userdata );
$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. Если пусто, то текущая дата в диапазоне GMT.
role(строка)
Роль пользователя.
По умолчанию берется из настроек: get_option('default_role')
jabber(строка)
Профиль.
aim(строка)
Профиль.
yim(строка)
Профиль.

Дополнительные

admin_color(строка)
Тема админки.
По умолчанию 'fresh'
show_admin_bar_front(строка)
Показывать админ бар на сайте или нет.
По умолчанию 'true'
locale(строка)
Язык пользователя (локаль). Например: ru_RU. С WP 4.7.
По умолчанию ''

Примеры

#1. Создаем пользователя

Функция создания пользователя на основе переданных через POST запрос данных:

/**
 * Регистрация нового пользователя
 */
function new_user_registration() {
	// Проверим защитные поля
	if( !isset( $_POST['nonce'] ) || !wp_verify_nonce( $_POST['nonce'], 'vb_new_user' ) )
		die( 'Оооопс, все вышло из под контроля, попробуйте еще разок, но чуть позже?' );

	// Данные переданные в $_POST
	$userdata = array(
		'user_login' => $_POST['user'],
		'user_pass'  => $_POST['pass'],
		'user_email' => $_POST['mail'],
		'first_name' => $_POST['name'],
		'nickname'   => $_POST['nick'],
	);

	/**
	 * Проверять/очищать передаваемые поля не обязательно, 
	 * WP сделает это сам.
	 */

	$user_id = wp_insert_user( $userdata ) ;

	// возврат
	if( ! is_wp_error( $user_id ) ) {
		return true;
	} else {
		return $user_id->get_error_message();
	} 
}

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

$user_id = 6;
$website = 'http://wordpress.org';
$userdata = array(
	'ID' => $user_id,
	'user_url' => $website
);

wp_insert_user( $userdata ) ;

Заметки

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

  • 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 4.8.2

<?php
function wp_insert_user( $userdata ) {
	global $wpdb;

	if ( $userdata instanceof stdClass ) {
		$userdata = get_object_vars( $userdata );
	} elseif ( $userdata instanceof WP_User ) {
		$userdata = $userdata->to_array();
	}

	// Are we updating or creating?
	if ( ! empty( $userdata['ID'] ) ) {
		$ID = (int) $userdata['ID'];
		$update = true;
		$old_user_data = get_userdata( $ID );

		if ( ! $old_user_data ) {
			return new WP_Error( 'invalid_user_id', __( 'Invalid user ID.' ) );
		}

		// hashed in wp_update_user(), plaintext if called directly
		$user_pass = ! empty( $userdata['user_pass'] ) ? $userdata['user_pass'] : $old_user_data->user_pass;
	} else {
		$update = false;
		// Hash the password
		$user_pass = wp_hash_password( $userdata['user_pass'] );
	}

	$sanitized_user_login = sanitize_user( $userdata['user_login'], true );

	/**
	 * Filters a username after it has been sanitized.
	 *
	 * This filter is called before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $sanitized_user_login Username after it has been sanitized.
	 */
	$pre_user_login = apply_filters( 'pre_user_login', $sanitized_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( $pre_user_login );

	// user_login must be between 0 and 60 characters.
	if ( empty( $user_login ) ) {
		return new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.') );
	} elseif ( mb_strlen( $user_login ) > 60 ) {
		return new WP_Error( 'user_login_too_long', __( 'Username may not be longer than 60 characters.' ) );
	}

	if ( ! $update && username_exists( $user_login ) ) {
		return new WP_Error( 'existing_user_login', __( 'Sorry, that username already exists!' ) );
	}

	/**
	 * Filters the list of blacklisted usernames.
	 *
	 * @since 4.4.0
	 *
	 * @param array $usernames Array of blacklisted usernames.
	 */
	$illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );

	if ( in_array( strtolower( $user_login ), array_map( 'strtolower', $illegal_logins ) ) ) {
		return new WP_Error( 'invalid_username', __( 'Sorry, that username is not allowed.' ) );
	}

	/*
	 * If a nicename is provided, remove unsafe user characters before using it.
	 * Otherwise build a nicename from the user_login.
	 */
	if ( ! empty( $userdata['user_nicename'] ) ) {
		$user_nicename = sanitize_user( $userdata['user_nicename'], true );
		if ( mb_strlen( $user_nicename ) > 50 ) {
			return new WP_Error( 'user_nicename_too_long', __( 'Nicename may not be longer than 50 characters.' ) );
		}
	} else {
		$user_nicename = mb_substr( $user_login, 0, 50 );
	}

	$user_nicename = sanitize_title( $user_nicename );

	// Store values to save in user meta.
	$meta = array();

	/**
	 * Filters a user's nicename before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $user_nicename The user's nicename.
	 */
	$user_nicename = apply_filters( 'pre_user_nicename', $user_nicename );

	$raw_user_url = empty( $userdata['user_url'] ) ? '' : $userdata['user_url'];

	/**
	 * Filters a user's URL before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $raw_user_url The user's URL.
	 */
	$user_url = apply_filters( 'pre_user_url', $raw_user_url );

	$raw_user_email = empty( $userdata['user_email'] ) ? '' : $userdata['user_email'];

	/**
	 * Filters a user's email before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $raw_user_email The user's email.
	 */
	$user_email = apply_filters( 'pre_user_email', $raw_user_email );

	/*
	 * If there is no update, just check for `email_exists`. If there is an update,
	 * check if current email and new email are the same, or not, and check `email_exists`
	 * accordingly.
	 */
	if ( ( ! $update || ( ! empty( $old_user_data ) && 0 !== strcasecmp( $user_email, $old_user_data->user_email ) ) )
		&& ! defined( 'WP_IMPORTING' )
		&& email_exists( $user_email )
	) {
		return new WP_Error( 'existing_user_email', __( 'Sorry, that email address is already used!' ) );
	}
	$nickname = empty( $userdata['nickname'] ) ? $user_login : $userdata['nickname'];

	/**
	 * Filters a user's nickname before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $nickname The user's nickname.
	 */
	$meta['nickname'] = apply_filters( 'pre_user_nickname', $nickname );

	$first_name = empty( $userdata['first_name'] ) ? '' : $userdata['first_name'];

	/**
	 * Filters a user's first name before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $first_name The user's first name.
	 */
	$meta['first_name'] = apply_filters( 'pre_user_first_name', $first_name );

	$last_name = empty( $userdata['last_name'] ) ? '' : $userdata['last_name'];

	/**
	 * Filters a user's last name before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $last_name The user's last name.
	 */
	$meta['last_name'] = apply_filters( 'pre_user_last_name', $last_name );

	if ( empty( $userdata['display_name'] ) ) {
		if ( $update ) {
			$display_name = $user_login;
		} elseif ( $meta['first_name'] && $meta['last_name'] ) {
			/* translators: 1: first name, 2: last name */
			$display_name = sprintf( _x( '%1$s %2$s', 'Display name based on first name and last name' ), $meta['first_name'], $meta['last_name'] );
		} elseif ( $meta['first_name'] ) {
			$display_name = $meta['first_name'];
		} elseif ( $meta['last_name'] ) {
			$display_name = $meta['last_name'];
		} else {
			$display_name = $user_login;
		}
	} else {
		$display_name = $userdata['display_name'];
	}

	/**
	 * Filters a user's display name before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $display_name The user's display name.
	 */
	$display_name = apply_filters( 'pre_user_display_name', $display_name );

	$description = empty( $userdata['description'] ) ? '' : $userdata['description'];

	/**
	 * Filters a user's description before the user is created or updated.
	 *
	 * @since 2.0.3
	 *
	 * @param string $description The user's description.
	 */
	$meta['description'] = apply_filters( 'pre_user_description', $description );

	$meta['rich_editing'] = empty( $userdata['rich_editing'] ) ? 'true' : $userdata['rich_editing'];

	$meta['comment_shortcuts'] = empty( $userdata['comment_shortcuts'] ) || 'false' === $userdata['comment_shortcuts'] ? 'false' : 'true';

	$admin_color = empty( $userdata['admin_color'] ) ? 'fresh' : $userdata['admin_color'];
	$meta['admin_color'] = preg_replace( '|[^a-z0-9 _.\-@]|i', '', $admin_color );

	$meta['use_ssl'] = empty( $userdata['use_ssl'] ) ? 0 : $userdata['use_ssl'];

	$user_registered = empty( $userdata['user_registered'] ) ? gmdate( 'Y-m-d H:i:s' ) : $userdata['user_registered'];

	$meta['show_admin_bar_front'] = empty( $userdata['show_admin_bar_front'] ) ? 'true' : $userdata['show_admin_bar_front'];

	$meta['locale'] = isset( $userdata['locale'] ) ? $userdata['locale'] : '';

	$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) {
			// user_nicename allows 50 chars. Subtract one for a hyphen, plus the length of the suffix.
			$base_length = 49 - mb_strlen( $suffix );
			$alt_user_nicename = mb_substr( $user_nicename, 0, $base_length ) . "-$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;
	}

	$compacted = compact( 'user_pass', 'user_email', 'user_url', 'user_nicename', 'display_name', 'user_registered' );
	$data = wp_unslash( $compacted );

	if ( $update ) {
		if ( $user_email !== $old_user_data->user_email ) {
			$data['user_activation_key'] = '';
		}
		$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 );

	/**
 	 * Filters a user's meta values and keys before the user is created or updated.
 	 *
 	 * Does not include contact methods. These are added using `wp_get_user_contact_methods( $user )`.
 	 *
 	 * @since 4.4.0
 	 *
 	 * @param array $meta {
 	 *     Default meta values and keys for the user.
 	 *
 	 *     @type string   $nickname             The user's nickname. Default is the user's username.
	 *     @type string   $first_name           The user's first name.
	 *     @type string   $last_name            The user's last name.
	 *     @type string   $description          The user's description.
	 *     @type bool     $rich_editing         Whether to enable the rich-editor for the user. False if not empty.
	 *     @type bool     $comment_shortcuts    Whether to enable keyboard shortcuts for the user. Default false.
	 *     @type string   $admin_color          The color scheme for a user's admin screen. Default 'fresh'.
	 *     @type int|bool $use_ssl              Whether to force SSL on the user's admin area. 0|false if SSL is
	 *                                          not forced.
	 *     @type bool     $show_admin_bar_front Whether to show the admin bar on the front end for the user.
	 *                                          Default true.
 	 * }
	 * @param WP_User $user   User object.
	 * @param bool    $update Whether the user is being updated rather than created.
 	 */
	$meta = apply_filters( 'insert_user_meta', $meta, $user, $update );

	// Update user meta.
	foreach ( $meta as $key => $value ) {
		update_user_meta( $user_id, $key, $value );
	}

	foreach ( wp_get_user_contact_methods( $user ) as $key => $value ) {
		if ( isset( $userdata[ $key ] ) ) {
			update_user_meta( $user_id, $key, $userdata[ $key ] );
		}
	}

	if ( isset( $userdata['role'] ) ) {
		$user->set_role( $userdata['role'] );
	} elseif ( ! $update ) {
		$user->set_role(get_option('default_role'));
	}
	wp_cache_delete( $user_id, 'users' );
	wp_cache_delete( $user_login, 'userlogins' );

	if ( $update ) {
		/**
		 * Fires immediately after an existing user is updated.
		 *
		 * @since 2.0.0
		 *
		 * @param int    $user_id       User ID.
		 * @param object $old_user_data Object containing user's data prior to update.
		 */
		do_action( 'profile_update', $user_id, $old_user_data );
	} else {
		/**
		 * Fires immediately after a new user is registered.
		 *
		 * @since 1.5.0
		 *
		 * @param int $user_id User ID.
		 */
		do_action( 'user_register', $user_id );
	}

	return $user_id;
}

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

Из метки: _user

Еще из раздела: Добавление/удаление пользователей

wp_insert_user 31 комментарий
Полезные 5 Вопросы 1 Все
  • Владимир

    А подскажите как добавить в профиль пользователя новые поля и сделать их обязательными для заполнения ещё при регистрации?
    Спасибо.

    2
    Ответить5.3 лет назад #
    • Создаём поля telefon а при создании пользователя так.

      $user_id = wp_insert_user( $userdata ) ;
      if( ! is_wp_error( $user_id ) ) {
       update_user_meta($user_id, 'telefon','+7999-99-99');
      }
      Ответить2.3 года назад #
  • Наиль

    При создании нового пользователя show_admin_bar_front все равно вставляется со значением true, то же самое касается и некоторых других мета-данных. Таким образом, получается нет смысла их указывать в массиве аргументов функции?

    Ответить2 года назад #
    • Kama4464

      Там вот код:

      $meta['show_admin_bar_front'] = empty( $userdata['show_admin_bar_front'] ) ? 'true' : $userdata['show_admin_bar_front'];

      Смысл указывать должен быть. Вы может что-то не так делаете? Не знаю... unknw

      1
      Ответить2 года назад #
    • campusboy1847 cайт: wp-plus.ru

      Вы допустили, скорее всего, как и я ошибку. Аргумент show_admin_bar_front должен передавать строку (то есть 'false'), а не булево значение. Тоже хотел начать "ругаться", но ,перечитав документацию, увидел свой косяк.

      Ответить1.6 года назад #
      • Kama4464

        Спасибо за коммент, подправил описание немного на эту тему... thank_you

        Ответить1.6 года назад #
  • Здравствуйте. Подскажите, есть ли способ перехватить пароль вновь созданного пользователя через хук?
    И, кстати в разделе "заметки" вы ошибочно указали названия нескольких фильтров:
    pre_user_user_pass - такого в теле исходника нет вообще
    pre_user_user_login - надо pre_user_login
    pre_user_user_nicename - надо pre_user_nicename
    pre_user_user_url - надо pre_userurl
    pre_user_user_email - надо pre_user_email.

    Ещё раз спасибо за Ваш титанический труд.

    Ответить2 года назад #
    • Kama4464

      Судя по коду функции, через хук нельзя.

      1. Можно переопределить функцию wp_hash_password(), а в нее передается чистый пароль.

      Чтобы переопределить, нужно создать плагин и в нем просто создать функцию с называнием wp_hash_password(). Код можно взять родной и добавить свой туда. Но тут надо учитывать что с обновлением ВП код может измениться...

      1. В самой функции wp_hash_password() пароль передается в класс PasswordHash. Заглянул в PasswordHash::HashPassword() там нет хуков. Так что, видимо единственная возможность это переопределить функцию wp_hash_password().
      1
      Ответить2 года назад #
  • Алексей

    Возникла проблема при мигрировании пользователя со стороннего сайта в WP. Пишет "неправильный пароль или логин", хотя на сайте стоит простое хеширование md5. Можете посоветовать что делать в данном случае ? вообще можно ли в данную функцию передавать пароль в md5?

    Ответить1.6 года назад #
    • Kama4464

      MD5 передавать нельзя... Вам нужно сбросить пароль... Как обычно через сброс или через обновление пользователя с помощью wp_update_user()

      Ответить1.6 года назад #
      • campusboy1847 cайт: wp-plus.ru

        А если просто использовать "Экспорт" встроенным в сам движок?

        Ответить1.6 года назад #
        • Kama4464

          Какой экспорт, он тут при чем?

          Ответить1.6 года назад #
          • campusboy1847 cайт: wp-plus.ru

            Я почему-то подумал что он с WP в другой WP хочет пользователей перенести. Тогда бы "Экспорт" помог.

            Ответить1.6 года назад #
  • Андрей cайт: ypfirm.ru
      $userdata = array(
    	'user_pass'       => $user_password, // обязательно
    	'user_login'      => $json_decoded['email'], // обязательно
    	'user_url'        => 'http://urban-extreme.ru/wp-content/themes/gladiators/images/users/isakov.png',
    	'user_email'      => $json_decoded['email'],
    	'first_name'      => $json_decoded['name'],
    	'last_name'       => $json_decoded['surname'],
    	'description'     => 'Адрес: ' . $_SERVER['REMOTE_ADDR'] . ' Агент:' . $_SERVER['HTTP_USER_AGENT'],
    	'rich_editing'    => 'true', // false - выключить визуальный редактор
    	'phone'           => $json_decoded['phone'],
      'score'           => '0',
      'rang'            => 'Не оплачено'
    
      );

    Так создаю юзера на основе полученных данных с формы. Три последних поля кастомные. Как сделать так, чтобы можно было их использовать, чтобы они добавлялись через wp_insert_user( $userdata )?

    Ответить1.5 года назад #
    • campusboy1847 cайт: wp-plus.ru
      $user_id = wp_insert_user( $userdata );
      if( ! is_wp_error( $user_id ) ) {
        update_user_meta( $user_id, 'kpp', $_POST['kpp'] );
        update_user_meta( $user_id, 'ogrn', $_POST['ogrn'] );
        update_user_meta( $user_id, 'legal-address', $_POST['legal-address'] );
        update_user_meta( $user_id, 'actual-address', $_POST['actual-address'] );
      }else{
        echo $user_id->get_error_message();
      }
      2
      Ответить1.5 года назад #
  • Использование уникального email при регистрации можно обойти через фильтр pre_user_email, я правильно понял? Или проверка на уникальность все равно сработает и вернется WP_Error? Требуется регистрировать пользователей, не имеющих email.

    Ответить1.4 года назад #
    • campusboy1847 cайт: wp-plus.ru

      Проще наверное брать последний ID пользователя и добавлять +1, и регать такую почту, ну что-то типа 152@mail.ru. А можно рандомной число умножать на рандомное, шанс, что попадётся одинаковые маленький.

      1
      Ответить1.4 года назад #
      • Спасибо, этот вариант пришел в голову, но это, так сказать, костыль. Если для альтернативой будет только правка ядра, придется использовать рандом, вот только восстановление паролей на email завязан.. прописать бы всем email админа, было бы гуд..

        Ответить1.4 года назад #
    • Мда, глупый вопрос задал, посмотрел код функции - ни на что фильтр не повлияет. Либо править ядро, либо как посоветовал campusboy

      Ответить1.4 года назад #
      • Kama4464

        Подмена email неплохой костыль вроде бы: и волки сыты и овцы целы...

        Ответить1.4 года назад #
  • Иван

    Здравствуйте.
    Не нашел поля для ссылки на аватар, как можно при создании пользователя привязать аватарку?

    Ответить1.1 года назад #
    • campusboy1847 cайт: wp-plus.ru

      Привет. Аватарка подтягивается по почте с помощью сервиса Граватар.

      Ответить1.1 года назад #
      • Иван

        А можно как нибудь принудительно прописать ему url аватара, есть плагин для авторизации через соц сети "WordPress Social Login" он как-то приписывает аватарки соц сетей к профилям пользователей, я делаю нечто похожее но не знаю как привязать аватарки, должен же быть какой-то способ?

        Ответить1.1 года назад #
        • campusboy1847 cайт: wp-plus.ru

          Думаю, тут тогда надо использовать API соц. выбранной соцсети. Подтягивать с неё аватарку человека. При добавлении пользователя wp_insert_user, она возвратит его ID в случае успеха, а зная ID мы можем добавить c функции add_user_meta любые данные, в данном случае урл на картинку в соцсети. При выводе комментариев это надо учитывать. То есть проверять, если метаполе существует (то есть картинка есть), то выводим её, если нет, то пытаемся получить граватар по указанному мылу.

          1
          Ответить1.1 года назад #
          • Иван

            Благодарю за ответ.
            Да я тоже думал насчет прикрепление мета данных, но думал есть решение не такое костыльное, видимо только так придется сделать.

            Ответить1.1 года назад #
  • Добрый день подскажите как можно реализовать чтоб при регистрации пользователя ему назначался фаил на скачивания (каждому пользователю свой уникальный фаил)
    прошу строго не судить не так давно работаю с WP и php не особо понимаю

  • Подскажите пожалуйста сюда

    'user_pass'  => $_POST['pass'],

    хешированный пароль отдается, или нешифрованый?

    Ответить2 месяца назад #
    • campusboy1847 cайт: wp-plus.ru

      Выдержка из статьи:

      Для обновления существующего пользователя, используйте: wp_update_user(), потому что эта функция не хэширует (скрывает) пароль.

      Но если вы не обновляете данные пользователя, а создаёте нового, то переданный пароль хешируется.

      1
      Ответить2 месяца назад #
      • Мы заводим нового пользователя. При этом, источник отдает имя и хешированный пароль.

        Ответить2 месяца назад #
  • Я пытаюсь использовать этот код для создания НОВОГО юзера.
    Прошу пояснить, сработает ли пример, если пароль будет передан в НЕзашифрованном виде?
    И, если нет, есть ли "костыль" для хеширования внутри этого кода?

    Ответитьмесяц назад #
    • Kama4464

      Сработает, так и рассчитано, чтобы не шифорованый передавался...

      Ответитьмесяц назад #

Здравствуйте, !

Ваш комментарий