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

user_register хук-событие . WP 1.5.0

Срабатывает сразу после того, как новый пользователь был зарегистрирован на сайте. После того, как данные пользователя были добавлены в базу данных.

Хук получает в качестве параметра ID пользователя.

На момент срабатывания этого хука, все метаданные уже добавлены в БД. Пароль уже зашифрован.

Этот хук можно использовать для добавления дополнительных метаданных переданных в форме регистрации нового пользователя.

Для добавления или обновления метаданных пользователя, также можно использовать хук insert_user_meta. См. пример ниже или код функции wp_insert_user()

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

add_action( 'user_register', '____action_function_name' );
function ____action_function_name( $user_id ) {
	// Действие...
}
$user_id(число)
ID зарегистрированного пользователя.

Примеры

#1 Добавим дополнительные данные пользователя при регистрации

Этот пример показывает как добавить значение поля user_sex, которое передается в $_POST данных из формы регистрации.

Имейте ввиду, что проверка обновляемых данных не должна производиться в момент этого хука - уже слишком поздно, пользователь уже добавлен! Проверку данных нужно делать во время хука registration_errors, хук user_register не сработает если проверка не будет пройдена...

// предварительная проверка поля
add_filter( 'registration_errors', 'my_validate_user_data' );
function my_validate_user_data( $errors ){
	if( empty($_POST['user_sex']) )
		$errors->add('empty_user_sex', 'Пол обязательно должен быть указан!' );
	elseif( ! in_array($_POST['user_sex'], array('male','female')) )
		$errors->add('invalid_user_sex', 'Пол указан неверно!' );

	return $errors;
}

// обновление метаданных пользователя
add_action( 'user_register', 'my_user_registration' );
function my_user_registration( $user_id ) {
	// $_POST['user_sex'] проверена заранее...
	update_user_meta( $user_id, 'user_sex', $_POST['user_sex']);
}

#2 Обновление метаданных пользователя при регистрации

Это аналогичный первому пример с использованием хука insert_user_meta для добавления метаданных пользователя при регистрации. Этот вариант предпочтительнее, потому что удобнее...

Этот пример полностью заменяет хук user_register из предыдущего примера. Проверку на ошибки берем из пред. примера.

// $meta = apply_filters( 'insert_user_meta', $meta, $user, $update );
add_filter( 'insert_user_meta', 'my_user_registration_meta', 10, 3 );
function my_user_registration_meta( $meta, $user, $update ) {
	// выходим если это не регистрация юзера
	if( $update ) return $meta;

	$meta['user_sex'] = $_POST['user_sex']; // $_POST['user_sex'] проверена заранее...

	return $meta;
}

Связи хука

Используется в: wp_insert_user()

Остальные хуки из: wp_insert_user():

Фрагменты кода хука user_register

Фрагмент из: wp-includes/user.php WP 4.8.2
...
		 *
		 * @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;
}

/**
 * Update a user in the database.
 *
 * It is possible to update a user's password by specifying the 'user_pass'
 * value in the $userdata parameter array.
 *
 * If current user's password is being updated, then the cookies will be
 * cleared.
 *
 * @since 2.0.0
...
user_register Комментариев нет

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

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