А вот по поводу сохранять - это уже другой вопрос. Зависит от того куда сохранять и в каком виде. Можно же делать связку с полями какими то у создаваемого пользователя. Конкретизируйте вопрос.
кстати уже и нашёл как создать, но не нашёл как сохранять. Мне вообщем то главное понять как перехватить данные из формы при сабмите и повесить свой обработчик, но и при этом основной сабмит отработал.
Я думаю создать таблицу отдельную куда сохранять ид юзера и значение нового поля
$form['#submit'][] = 'my_register_handler';
По умолчанию для этой формы задан сабмит - user_register_submit.
Сабмиты работают после валидаторов. Если валидаторы не установили ошибки через form_set_error то после них будут выполнены сабмиты.
Данные в таком случае будут доступны через $form_state['input']['newfield'];
Можете свой валидатор для поля дописать:
$['form']['#validate'][] = 'my_newfield_validator';
function my_register_handler($form,&$form_state){
// Тут сохраняем данные в базу или куда надо. Данные поля доступны в $form_state['input']['newfield'];
}
function my_newfield_validator($form,&$form_state){
// Тут осуществляем проверку поля. Данные поля доступны в $form_state['values']['newfield']. Если всё ок то ничего не возвращаем. Если есть ошибки - используем form_set_error('newfield',t('Field is incorrect'));
}