AddressCheckoutComponent::getData PHP Метод

getData() публичный Метод

public getData ( Order $order )
$order Order
    public function getData(Order $order)
    {
        $data = $this->getAddress($order)->toMap();
        //merge data from multiple sources
        $data = array_merge(ShopUserInfo::singleton()->getLocation(), $data, array($this->addresstype . "AddressID" => $order->{$this->addresstype . "AddressID"}));
        //merge in default address if an address isn't available
        $member = Member::currentUser();
        if (!$order->{$this->addresstype . "AddressID"}) {
            $data = array_merge(ShopUserInfo::singleton()->getLocation(), $member ? $member->{"Default" . $this->addresstype . "Address"}()->toMap() : array(), array($this->addresstype . "AddressID" => $order->{$this->addresstype . "AddressID"}));
        }
        unset($data['ID']);
        unset($data['ClassName']);
        unset($data['RecordClassName']);
        //ensure country is restricted if there is only one allowed country
        if ($country = SiteConfig::current_site_config()->getSingleCountry()) {
            $data['Country'] = $country;
        }
        return $data;
    }

Usage Example

 public function getData(Order $order)
 {
     $member = Member::currentUser() ?: $order->Member();
     if (!$member || !$member->exists() || !$member->AddressBook()->exists()) {
         $data = parent::getData($order);
         if (!isset($data['Name']) || !$data['Name']) {
             if ($member = Member::currentUser()) {
                 $data['Name'] = $member->{"Default" . $this->addresstype . "Address"}()->Name ?: $member->Name;
             } else {
                 $data['Name'] = $order->Name;
             }
         }
         return $data;
     }
     $data = ['Use' => 'address-' . $this->getDefaultAddress($member)->ID];
     return $data;
 }