hook_user_insert () вызывается после вставки учетной записи пользователя в таблицу базы данных, что происходит, когда один из пользователей-администраторов создает учетную запись пользователя на административных страницах или когда модуль программно создает учетная запись пользователя.
Цель ловушки - сохранить пользовательские данные, которые модуль связывает с учетной записью пользователя. Звонить drupal_goto()
в этом случае неправильно.
Чтобы перенаправить пользователя после регистрации, вы можете реализовать код, подобный следующему. («mymodule» - просто пример короткого имени для модуля; замените его на короткое имя модуля, который вы используете / создаете.)
function mymodule_form_ user_register_form_alter(&$form, &$form_state) {
// Add a form submission handler to the registration form.
$form['#submit'][] = 'mymodule_user_register_submit';
}
function mymodule_user_register_submit($form, &$form_state) {
$form_state['redirect'] = 'where you want to redirect the user';
}
Учтите, что при выполнении этого кода пользователям по-прежнему необходимо войти в систему, и (в зависимости от настроек сайта) им может понадобиться сначала получить электронное письмо, которое Drupal отправляет пользователям, когда он настроен на первую проверку адрес электронной почты, указанный зарегистрированными пользователями.
Если вы хотите перенаправить пользователя после входа в систему, вы должны реализовать hook_user_login () , но пользователю необходимо сначала войти в систему.