Exemplo n.º 1
0
 public function save($values, $options = array())
 {
     $result = new stdClass();
     $result->error = false;
     Citruscart::load('CitruscartHelperUser', 'helpers.user');
     $userHelper = new CitruscartHelperUser();
     JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_citruscart/tables');
     $userinfo = JTable::getInstance('UserInfo', 'CitruscartTable');
     $user_id = $values["user_id"];
     $create_account = $values["checkout_method"] == 'register' ? true : false;
     $guest_checkout = $this->defines->get('guest_checkout_enabled', '1');
     if ($values["checkout_method"] == "guest") {
         // save the real user info in the userinfo table
         $userinfo->user_id = $user_id;
         $userinfo->email = $values['email_address'];
         if (!$userinfo->save()) {
             $result->error = true;
             $this->setError($userinfo->getError());
         }
         // save the billing and shipping addresses?
         //$this->setAddresses($submitted_values, true, true);
     } elseif ($values["checkout_method"] == "register") {
         // create a new user from billing info
         $details = array('email' => $values['email_address'], 'name' => $values['billing_input_first_name'] . ' ' . $values['billing_input_middle_name'] . ' ' . $values['billing_input_last_name'], 'username' => $values['email_address']);
         if (strlen(trim($details['name'])) == 0) {
             $details['name'] = JText::_('COM_CITRUSCART_USER');
         }
         $details['password'] = $values["register-new-password"];
         $details['password2'] = $values["register-new-password2"];
         if (!($user = $userHelper->createNewUser($details))) {
             $result->error = true;
             //$this->setError( $user->getError() );
         } else {
             $userHelper->login(array('username' => $user->username, 'password' => $details['password']));
             $user_id = $user->id;
             $userinfo->load(array('user_id' => $user_id));
             $userinfo->user_id = $user_id;
             $userinfo->first_name = $values['billing_input_first_name'];
             $userinfo->last_name = $values['billing_input_last_name'];
             $userinfo->company = $values['billing_input_company'];
             $userinfo->middle_name = $values['billing_input_middle_name'];
             $userinfo->phone_1 = $values['billing_input_phone_1'];
             $userinfo->email = $values['email_address'];
             if (!$userinfo->save()) {
                 $result->error = true;
                 $this->setError($userinfo->getError());
             }
         }
     }
     $result->user_id = $user_id;
     $result->userinfo = $userinfo;
     $this->result = $result;
     DSCModel::addIncludePath(JPATH_SITE . '/components/com_citruscart/models');
     $model = DSCModel::getInstance('Userinfo', 'CitruscartModel');
     $model->clearCache();
     if ($result->error) {
         return false;
     }
     return $result;
 }