/**
  * If the flag has been set from the provided array, create a new
  * address and assign to the current user.
  *
  * @param $data Form data submitted
  */
 private function save_address($data)
 {
     // If the user ticked "save address" then add to their account
     if (array_key_exists('SaveAddress', $data) && $data['SaveAddress']) {
         $address = MemberAddress::create();
         $address->FirstName = $data['FirstName'];
         $address->Surname = $data['Surname'];
         $address->Address1 = $data['Address1'];
         $address->Address2 = $data['Address2'];
         $address->City = $data['City'];
         $address->PostCode = $data['PostCode'];
         $address->Country = $data['Country'];
         $address->OwnerID = Member::currentUserID();
         $address->write();
     }
 }
 public function doContinue($data)
 {
     Session::set("Commerce.DeliveryDetailsForm.data", $data);
     // If the user ticked "save address" then add to their account
     if (array_key_exists('SaveAddress', $data) && $data['SaveAddress']) {
         $address = MemberAddress::create();
         $address->FirstName = $data['DeliveryFirstnames'];
         $address->Surname = $data['DeliverySurname'];
         $address->Address1 = $data['DeliveryAddress1'];
         $address->Address2 = $data['DeliveryAddress2'];
         $address->City = $data['DeliveryCity'];
         $address->PostCode = $data['DeliveryPostCode'];
         $address->Country = $data['DeliveryCountry'];
         $address->OwnerID = Member::currentUserID();
         $address->write();
     }
     $url = $this->controller->Link("finish");
     return $this->controller->redirect($url);
 }
 /**
  * If the flag has been set from the provided array, create a new
  * address and assign to the current user.
  *
  * @param $data Form data submitted
  */
 private function save_address($data)
 {
     $member = Member::currentUser();
     // If the user ticked "save address" then add to their account
     if ($member && array_key_exists('SaveAddress', $data) && $data['SaveAddress']) {
         // First save the details to the users account if they aren't set
         // We don't save email, as this is used for login
         $member->FirstName = $member->FirstName ? $member->FirstName : $data['FirstName'];
         $member->Surname = $member->Surname ? $member->Surname : $data['Surname'];
         $member->Company = $member->Company ? $member->Company : $data['Company'];
         $member->PhoneNumber = $member->PhoneNumber ? $member->PhoneNumber : $data['PhoneNumber'];
         $member->write();
         $address = MemberAddress::create();
         $address->Company = $data['Company'];
         $address->FirstName = $data['FirstName'];
         $address->Surname = $data['Surname'];
         $address->Address1 = $data['Address1'];
         $address->Address2 = $data['Address2'];
         $address->City = $data['City'];
         $address->PostCode = $data['PostCode'];
         $address->Country = $data['Country'];
         $address->OwnerID = $member->ID;
         $address->write();
     }
 }
 /**
  * Method responsible for saving (or adding) a member's address.
  * If the ID field is set, the method assums we are saving
  * an address.
  *
  * If the ID field is not set, we assume a new address is being
  * created.
  *
  */
 public function doSaveAddress($data, $form)
 {
     if (!$data["ID"]) {
         $address = MemberAddress::create();
     } else {
         $address = MemberAddress::get()->byID($data["ID"]);
     }
     if ($address) {
         $form->saveInto($address);
         $address->write();
         $this->owner->setSessionMessage("success", _t("Checkout.AddressSaved", "Address Saved"));
     } else {
         $this->owner->setSessionMessage("error", _t("Checkout.Error", "There was an error"));
     }
     return $this->owner->redirect($this->owner->Link("addresses"));
 }