public function validate($values, $options = array()) { // fail if user hasn't checked terms & condition if ($this->defines->get('require_terms', '0') && empty($values["terms-conditions"])) { $this->setError(JText::_('COM_TIENDA_PLEASE_CHECK_THE_TERMS_CONDITIONS')); } // fail if no user->id and email address fails validation jimport('joomla.mail.helper'); if ($values["user_id"] < 1 && !JMailHelper::isEmailAddress($values['email_address'])) { $this->setError(JText::_('COM_TIENDA_PLEASE_ENTER_CORRECT_EMAIL')); } // fail if registering new user but one of passwords is empty if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && (empty($values["register-new-password"]) || empty($values["register-new-password2"]))) { $this->setError(JText::_('COM_TIENDA_PASSWORD_INVALID')); } // fail if registering new user but passwords don't match if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && $values["register-new-password"] != $values["register-new-password2"]) { $this->setError(JText::_('COM_TIENDA_PASSWORDS_DO_NOT_MATCH')); } // fail if registering new user but account exists for email address provided $userHelper = new TiendaHelperUser(); if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && $userHelper->emailExists($values['email_address'])) { $this->setError(JText::_('COM_TIENDA_EMAIL_ALREADY_EXIST')); } // fail if user logged in and guest/register method selected if ($values["user_id"] > 0 && ($values["checkout_method"] == 'register' || $values["checkout_method"] == 'guest')) { $this->setError(JText::_('COM_TIENDA_CANNOT_REGISTER_OR_GUEST_CHECKOUT_WHEN_LOGGED_IN')); } // fail if password doesn't validate and validation is enabled if ($this->defines->get('password_php_validate', '0')) { Tienda::load('TiendaHelperUser', 'helpers.user'); $userHelper = new TiendaHelperUser(); $validate_pass = $userHelper->validatePassword($values['register-new-password']); if (!$validate_pass[0]) { foreach ($validate_pass[1] as $error) { $this->setError($error); } } } return $this->check(); }