Формулировка сообщения об ошибке («... a valid date ...») указывает на то, что оно выдается из функции проверки формы. В зависимости от того, как это написано, он все равно может попытаться проверить поле, даже если вы успешно удалили его из формы.
Если это так, вам нужно либо переопределить функцию проверки пользовательской версией, которая не ожидает поле даты рождения (проверьте содержимое $form['#validate']
в вашей реализации hook_form_alter()
). В качестве альтернативы, вместо удаления поля вы можете превратить его в '#type' => 'hidden'
или '#type' => 'value'
и указать значение по умолчанию, которое проходит проверку, но тогда вы в конечном итоге назначите фиктивные даты рождения, которые могут оказаться не такими, как вы хотите.