lechowski / 13.11.2021

Restricting age to minimum 18 years in registration form

In this tutorial, we show a code to restrict the user the age of 18 as the minimum age.

To do this, the validation class (class / Validation.php) that birthday check is used. But we use the override to avoid modifying core files of PrestaShop.

First, create a new php file called Validation.php, and put this content:

class Validate extends ValidateCore {
public static function isBirthDate($date)
{
if (empty($date) || $date == '0000-00-00')
return false;
if (preg_match('/^([0-9]{4})-((?:0?[1-9])|(?:1[0-2]))-((?:0?[1-9])|(?:[1-2][0-9])|(?:3[01]))([0-9]{2}:[0-9]{2}:[0-9]{2})?$/', $date, $birth_date))
{
if ((floor((time() - strtotime($date))/31556926))<18)
return false;
if ($birth_date[1] > date('Y') && $birth_date[2] > date('m') && $birth_date[3] > date('d'))
return false;
return true;
}
return false;
}
}

 

and copy this file to overrides/classes directory of PrestaShop. After that, delete the file cache/class_index.php to load the new override and thats all