/** * 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); } } }
/** * 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)); }