Example #1
0
 /**
  * Update anonymous profile
  *
  * @return void
  */
 protected function updateAnonymousProfile()
 {
     $login = $this->requestData['email'];
     if (null !== $login) {
         $tmpProfile = new \XLite\Model\Profile();
         $tmpProfile->setProfileId(0);
         $tmpProfile->setLogin($login);
         $profile = \XLite\Core\Database::getRepo('XLite\\Model\\Profile')->findUserWithSameLogin($tmpProfile);
         $exists = $profile && !$profile->getAnonymous();
         if ($profile) {
             \XLite\Core\Database::getEM()->detach($profile);
         }
         if ($exists) {
             \XLite\Core\Session::getInstance()->order_create_profile = false;
         }
         \XLite\Core\Session::getInstance()->lastLoginUnique = !$exists;
         $profile = $this->getCartProfile();
         $profile->setLogin($login);
         \XLite\Core\Database::getEM()->flush($profile);
         \XLite\Core\Event::loginExists(array('value' => $exists));
         if ($exists && $this->requestData['create_profile']) {
             // Profile with same login is exists
             $this->valid = false;
         } elseif (isset($this->requestData['password']) && !$this->requestData['password'] && $this->requestData['create_profile']) {
             $this->valid = false;
             $label = static::t('Field is required!');
             \XLite\Core\Event::invalidElement('password', $label);
         } elseif (false !== $this->valid) {
             \XLite\Core\Session::getInstance()->order_create_profile = (bool) $this->requestData['create_profile'];
             if (\XLite\Core\Session::getInstance()->order_create_profile) {
                 \XLite\Core\Session::getInstance()->createProfilePassword = $this->requestData['password'];
             }
         }
     }
 }