Стандартная форма хороша и проста, но не всегда у людей есть почтовый ящик, либо его не использует, но для связи они не против указывать телефон, однако его там не ввести, т.к. проверка на валидность происходит.
Webform ради этого ставить не хочется
Ответы
Валидация e-mail происходит в contact_site_form_validate, а потом в contact_site_form_submit происходит отправка письма на этот e-mail.
Можно в hook_form_alter удалить эти стандартные функции валидации и сабмита, и задать свои:
function MODULE_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'contact_site_form') {
$form['#validate'] = array('custom_contact_site_form_validate');
$form['#submit'] = array('custom_contact_site_form_submit');
}
}
В свои функции custom_contact_site_form_validate и custom_contact_site_form_submit скопируйте содержимое оригинальных функций contact_site_form_validate и contact_site_form_submit, и удалите проверку e-mail, отправку письма.
Оригинальные функции находятся в /modules/contact/contact.pages.inc
Альтерим форму:
function MODULE_form_contact_site_form_alter(&$form, &$form_state) {
unset($form['submitted']['FIELDNAME']['#needs_validation']);
}
Только точный путь до #needs_validation
поля после сабмита надо уточнить.