AddressCheckoutComponent::getFormFields PHP Метод

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

public getFormFields ( Order $order )
$order Order
    public function getFormFields(Order $order)
    {
        return $this->getAddress($order)->getFrontEndFields(array('addfielddescriptions' => $this->formfielddescriptions));
    }

Usage Example

 public function getFormFields(Order $order)
 {
     $member = Member::currentUser() ?: $order->Member();
     if (!$member || !$member->exists() || !$member->AddressBook()->exists()) {
         return parent::getFormFields($order);
     }
     $options = [];
     $default = $this->getDefaultAddress($member);
     $params = ['addfielddescriptions' => $this->formfielddescriptions];
     $addressFields = $default->getFrontEndFields($params);
     if ($this->allowSaveAsNew) {
         $addressFields->push(CheckboxField::create('saveAsNew', _t('AlternateAddressBookCheckoutComponent.SAVE_AS_NEW', 'Save as new address')));
     }
     $options[] = SelectionGroup_Item::create('address-' . $default->ID, HasOneCompositeField::create('address-' . $default->ID, $default, $addressFields), _t('AlternateAddressBookCheckoutComponent.USE_DEFAULT', '{address}', ['address' => $default->Title]));
     if ($member->AddressBook()->exclude('ID', $default->ID)->exists()) {
         foreach ($member->AddressBook()->exclude('ID', $default->ID) as $address) {
             $addressFields = $address->getFrontEndFields($params);
             $addressFields->push(CheckboxField::create('saveAsNew', _t('AlternateAddressBookCheckoutComponent.SAVE_AS_NEW', 'Save as new address')));
             if ($member->DefaultShippingAddressID != $address->ID) {
                 $addressFields->push(CheckboxField::create('useAsDefaultShipping', _t('AlternateAddressBookCheckoutComponent.USE_AS_DEFAULT_SHIPPING', 'Use as default shipping address')));
             }
             if ($member->DefaultBillingAddressID != $address->ID) {
                 $addressFields->push(CheckboxField::create('useAsDefaultBilling', _t('AlternateAddressBookCheckoutComponent.USE_AS_DEFAULT_BILLING', 'Use as default billing address')));
             }
             $options[] = SelectionGroup_Item::create('address-' . $address->ID, HasOneCompositeField::create('address-' . $address->ID, $address, $addressFields), _t('AlternateAddressBookCheckoutComponent.SHIP_TO_SELECTED_ADDRESS', '{address}', ['address' => $address->Title]));
         }
     }
     if ($this->allowNew) {
         $addressFields = parent::getFormFields($order);
         $addressFields->push(CheckboxField::create('useAsDefaultShipping', _t('AlternateAddressBookCheckoutComponent.USE_AS_DEFAULT_SHIPPING', 'Use as default shipping address')));
         $addressFields->push(CheckboxField::create('useAsDefaultBilling', _t('AlternateAddressBookCheckoutComponent.USE_AS_DEFAULT_BILLING', 'Use as default billing address')));
         $options[] = SelectionGroup_Item::create('new', HasOneCompositeField::create('new', Address::create(), $addressFields), _t('AlternateAddressBookCheckoutComponent.' . $this->addresstype . '_TO_NEW_ADDRESS', 'New ' . ucfirst($this->addresstype) . ' Address'));
     }
     return FieldList::create(TabbedSelectionGroup::create('Use', $options)->setTitle(_t('ShippingDetails.' . $this->addresstype . '_ADDRESS', ucfirst($this->addresstype) . ' Address'))->setLabelTab(true)->showAsDropdown(true));
 }
All Usage Examples Of AddressCheckoutComponent::getFormFields