User_register — Срабатывает сразу после того, как новый пользователь был зарегистрирован на сайте. После того, как данные пользователя были добавлены в базу данных. Хук-событие WordPress
01.09.2018
Срабатывает сразу после того, как новый пользователь был зарегистрирован на сайте. После того, как данные пользователя были добавлены в базу данных.
Хук получает в качестве параметра 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; }