Fecha de nacimiento obligatoria en Prestashop 1.7
En Prestashop 1.7 la fecha de nacimiento se establece como opcional en el formulario de registro en la tienda. Pero si para tu tienda resulta ser un requisito indispensable ser mayor de edad y quieres que quede recogido durante el formulario de registro como un campo obligatorio, te damos la solución en nuestra nueva entrada de blog.
Cambios en el archivo CustomerFormatter.php
Lo primero que tendrás que hacer es entrar por FTP en la carpeta classes/form/CustomerFormatter.php
Deberás cambiar la linea:
$this->translator->trans(‘(E.g.: %date_format%)’, array(‘%date_format%’ => Tools::formatDateStr(’31 May 1970′)), ‘Shop.Forms.Help’)
)
por
Cambios en el archivo Customer.php
Después no salimos de la carpeta form y nos quedamos en la de classes y ahí hacemos una modificación en el archivo classes/Customer.php
cambia
‘birthday’ => array(‘type’ => self::TYPE_DATE, ‘validate’ => ‘isBirthDate’),
por
Cambios en el archivo ObjectModel.php
Ahora nos vamos al archivo classes/ObjectModel.php
Y buscas la linea public function validateController($htmlentities = true)
Deberás añadir el código que te resaltamos debiendo quedar así:
public function validateController($htmlentities = true)
{
$this->cacheFieldsRequiredDatabase();
$errors = array();
$required_fields_database = (isset(self::$fieldsRequiredDatabase[get_class($this)])) ? self::$fieldsRequiredDatabase[get_class($this)] : array();
foreach ($this->def[‘fields’] as $field => $data) {
$value = Tools::getValue($field, $this->{$field});
// Check if field is required by user
if (in_array($field, $required_fields_database)) {
$data[‘required’] = true;
}
Realizadas todas estas modificaciones en el código verás que ya aparece como obligatoria la casilla de la fecha de nacimiento en prestashop 1.7.