[ ['checkLegalAge', 200], ], CartEvent::CHECK_CART => [ ['checkCartLegalAge', 200], ], ]; } public function checkCartLegalAge(CartEvent $event) { $cfg = \Settings::getDefault(); if (($cfg['age_verify']['enabled'] ?? 'N') == 'N') { return; } $cart = $event->getCart(); if ($cart->getActualStepIndex() != $this->lastStepIndex) { return; } if ($cart->getData('age_verification')) { return; } $mainRequest = $this->requestStack->getMainRequest(); if (!empty($cfg['age_verify']['adulto']['enabled'])) { $result = $this->adultoUtil->checkAdultoUid($mainRequest->get('adultocz-uid') ?? ''); if (!$result['success']) { throw new CartValidationException(translate('registered_with_legal_age', 'AgeVerify')); } else { $cart->setData('age_verification', $result['data']); return; } } $this->checkAgeRegisteredUser($cart); } public function checkLegalAge(CartEvent $event) { $cfg = \Settings::getDefault(); if (($cfg['age_verify']['enabled'] ?? 'N') == 'N') { return; } $cart = $event->getCart(); if ($cart->getActualStepIndex() != $this->lastStepIndex) { return; } if ($cart->getData('age_verification')) { return; } if (!empty($cfg['age_verify']['adulto']['enabled'])) { return; } $this->checkAgeRegisteredUser($cart); } protected function checkAgeRegisteredUser(\Cart $cart): void { $user = $this->userContext->getActive(); if (!$user) { throw new CartValidationException(translate('registered_with_legal_age', 'AgeVerify')); } $legalAge = sqlQueryBuilder()->select('legal_age')->from('users_age_verification')->where(Operator::equals(['id_user' => $user->id]))->execute()->fetchOne(); if (empty($legalAge)) { throw new CartValidationException(translate('dont_verify', 'AgeVerify')); } elseif ($legalAge == 'N') { throw new CartValidationException(translate('not_legal_age', 'AgeVerify')); } if ($deliveryBirthdate = $cart->getData('delivery_birthdate')) { $date = \DateTime::createFromFormat('Y-m-d', $deliveryBirthdate)->add(\DateInterval::createFromDateString('+18YEARS')); if ($date > (new \DateTime())) { throw new CartValidationException(translate('delivery_legal_age', 'AgeVerify')); } } } }