Email не получается сделать необязательным при регистрации

Главные вкладки

Аватар пользователя Ebudar Ebudar 20 сентября в 4:45

В файле olivero.theme в olivero_form_alter добавляю:

case 'user_register_form':
// Делаем поле email необязательным.
if (isset($form['account']['mail'])) {
$form['account']['mail']['#required'] = FALSE;
}
break;

Но что-то неправильно. Поле все равно требует заполнения, хотя голубая звездочка исчезла.

Подскажите какой у меня косяк

Комментарии

Аватар пользователя jason32 jason32 20 сентября в 12:05

Есть сомнение, что это надо делать в ТЕМЕ, а не в хуке формы. В теме форма уже сформирована, мы лишь внешний вид там меняем.

Аватар пользователя y-vo y-vo 20 сентября в 14:43

Что то такое должно быть по идее.

<?phpfunction mymodule_form_user_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_register_form') {
    $form['account']['mail']['#required'] = FALSE;
  }
}?>
Аватар пользователя Ebudar Ebudar 20 сентября в 16:58

Сделал кастомный модуль, но все равно требует заполнения поля Email.

<?php

function EmailRemove_form_user_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'user_register_form') {
$form['account']['mail']['#required'] = FALSE;
}
}

Аватар пользователя OldWarrior OldWarrior 21 сентября в 9:43

Потому что просто так костылить формы модулей ядра не получится.
Например, помимо атрибутов а-ля required полей формы - есть PHP-методы валидации форм (вызываются перед сабмит-методами класса), где так же производится проверка полей.