/** * 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 we use a * */ public function onBeforeUseMemberAddress() { if ($this->owner->onlyDownloadable()) { $id = $this->owner->request->param("ID"); $otherid = $this->owner->request->param("OtherID"); $data = array(); $address = MemberAddress::get()->byID($id); if ($address) { $data = array(); $data['DeliveryFirstnames'] = $address->FirstName; $data['DeliverySurname'] = $address->Surname; $data['DeliveryAddress1'] = $address->Address1; $data['DeliveryAddress2'] = $address->Address2; $data['DeliveryCity'] = $address->City; $data['DeliveryPostCode'] = $address->PostCode; $data['DeliveryCountry'] = $address->Country; Session::set("Checkout.DeliveryDetailsForm.data", $data); } } }
/** * 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")); }
/** * Use the address provided via the $ID param in the URL. The * $OtherID param is used to determine if the address is billing * or delivery. * * If no $ID or $OtherID is provided, we return an error. * * @return redirect */ public function usememberaddress() { $allowed_otherids = array("billing", "delivery"); $id = $this->request->param("ID"); $otherid = $this->request->param("OtherID"); $data = array(); $member = Member::currentUser(); $address = MemberAddress::get()->byID($id); $action = "billing"; // If our required details are not set, return a server error if (!$address || !$member || $address && !$address->canView($member) || !in_array($otherid, $allowed_otherids)) { return $this->httpError(404, "There was an error selecting your address"); } // Set the session data if ($otherid == "billing") { $data["FirstName"] = $address->FirstName; $data["Surname"] = $address->Surname; $data["Address1"] = $address->Address1; $data["Address2"] = $address->Address2; $data["City"] = $address->City; $data["PostCode"] = $address->PostCode; $data["Country"] = $address->Country; $data["Email"] = $member->Email; $data["PhoneNumber"] = $member->PhoneNumber; $data["Company"] = $address->Company; Session::set("Checkout.BillingDetailsForm.data", $data); $action = "delivery"; } if ($otherid == "delivery") { $data['DeliveryCompany'] = $address->Company; $data['DeliveryFirstnames'] = $address->FirstName; $data['DeliverySurname'] = $address->Surname; $data['DeliveryAddress1'] = $address->Address1; $data['DeliveryAddress2'] = $address->Address2; $data['DeliveryCity'] = $address->City; $data['DeliveryPostCode'] = $address->PostCode; $data['DeliveryCountry'] = $address->Country; Session::set("Checkout.DeliveryDetailsForm.data", $data); $action = "finish"; } $this->extend("onBeforeUseMemberAddress"); return $this->redirect($this->Link($action)); }