Пользовательский обратный вызов на user_register_form Drupal 7

Я вызвал пользовательскую функцию при отправке формы регистрации пользователя Drupal.

Ниже приведены функции, которые я реализовал

/**
* Implements hook_form_alter()
*/
function voen_registration_form_alter(&$form, &$form_state, $form_id) {
//dpm($form);
switch($form_id){
case 'user_register_form':
$form['account']['name']['#required'] = FALSE;
$form['account']['name']['#type'] = 'hidden';
array_unshift($form['#submit'],'voen_generate_username');
print_r($form);
break;
}
}

function voen_generate_username(&$form, &$form_state){
//drupal_set_message('Function Running');
die('Wokring');
}

Теперь, когда форма отправлена, я печатаю $ форму и в ключе отправки я получаю следующий результат, который я ожидаю

 [#submit] => Array
(
[0] => voen_generate_username
[1] => user_register_submit
)

Но я не знаю, почему моя пользовательская функция не выполняется. Я попытался с die (), а также с drupal_set_message (), а также попытался print_r () в пользовательской функции, но без ответа. Он по-прежнему выдает ошибку «Пожалуйста, введите имя пользователя», полученную из функции user_register_submit из пользовательского модуля.

Спасибо

0

Решение

Функция отправки не выполняется, потому что функция проверки не пройдена.
Взгляни на $form['#validate'], есть функция «user_account_form_validate», которая не пройдет, если вы не определите хотя бы значение по умолчанию для поля имени.

В любом случае, если вы пытаетесь разрешить регистрацию только по электронной почте, взгляните на этот модуль:
https://www.drupal.org/project/email_registration

1

Другие решения

Других решений пока нет …