/**
  * Validate the Email Address field
  */
 public function validateEmail()
 {
     $value = $this->getValue('email_address');
     $existingUser = \CPFCMembers\UserModel::loadByEmailAddress($value);
     $existingAdminUser = get_user_by('email', $value);
     switch (true) {
         case $this->validateRequired('email_address'):
         case !filter_var($value, FILTER_VALIDATE_EMAIL):
             $this->addError('email_address', 'Please enter a valid email address');
             break;
         case $existingUser->getId():
         case $existingAdminUser instanceof \WP_User:
             $this->addError('email_address', 'An account with this email address already exists');
             break;
         case $value != $this->getValue('confirm_email_address'):
             $this->addError('email_address', 'Please make sure the email addresses match');
             break;
     }
 }
Exemplo n.º 2
0
    /**
     * Verification Email Request process and redirect
     */
    protected function _verificationEmailRequest()
    {
        $templateData = \CPFCMembers\TemplateData::getInstance();
        $form = \CPFCMembers\VerificationEmailRequestForm::getInstance();
        $status = '';
        if (Input::isPost()) {
            $form->setValues(Input::post());
            $form->validate();

            if ($form->isValid()) {
                $User = \CPFCMembers\UserModel::loadByEmailAddress(Input::post('email_address'));

                if ($User->getRegistrationStatus() == 'verified') {
                    $status = 'USER_ALREADY_VERIFIED';
                    $form->setValues(array('email_address'=>''));
                } else {
                    $User->generateAndStoreVerificationCode();
                    if ($User->save(true)) {
                        $email = new \CPFCMembers\Email('email_templates/verification_email_request', array('User'=>$User));
                        $email->send($User->getEmailAddress(), 'Verification Email Request email');

                        $status = 'SUCCESS';
                    } else {
                        $status = 'USER_NOT_SAVED';
                    }
                }
            }
        } else {
            $form->setValues(Input::get());
        }

        $templateData->set('verificationEmailRequest', $status);
    }