Exemplo n.º 1
0
 /**
  * Return specific data for address entry. Helper.
  *
  * @param \XLite\Model\Address $address   Address
  * @param boolean              $showEmpty Show empty fields OPTIONAL
  *
  * @return array
  */
 protected function getAddressSectionData(\XLite\Model\Address $address, $showEmpty = false)
 {
     $result = array();
     $hasStates = $address->getCountry() ? $address->getCountry()->hasStates() : false;
     foreach (\XLite\Core\Database::getRepo('XLite\\Model\\AddressField')->findAllEnabled() as $field) {
         $method = 'get' . \Includes\Utils\Converter::convertToCamelCase($field->getViewGetterName() ?: $field->getServiceName());
         $addressFieldValue = $address->{$method}();
         $cssFieldName = $field->getCSSFieldName();
         switch ($field->getServiceName()) {
             case 'state_id':
                 $addressFieldValue = $hasStates ? $addressFieldValue : null;
                 if (null === $addressFieldValue && $hasStates) {
                     $addressFieldValue = $address->getCustomState();
                 }
                 break;
             case 'custom_state':
                 $addressFieldValue = $hasStates ? null : $address->getCustomState();
                 $cssFieldName = $hasStates ? $cssFieldName : 'address-state';
                 break;
             default:
         }
         if ($addressFieldValue || $showEmpty) {
             $result[$field->getServiceName()] = array('css_class' => $cssFieldName, 'title' => $field->getName(), 'value' => $addressFieldValue);
         }
     }
     return $result;
 }
Exemplo n.º 2
0
 /**
  * Prepare the specific data format for address
  *
  * @param \XLite\Model\Address $address Address
  *
  * @return array
  */
 public static function prepareAddressData($address)
 {
     return $address ? array('address' => $address->getStreet(), 'city' => $address->getCity(), 'state' => $address->getState()->getStateId(), 'custom_state' => $address->getCustomState(), 'zipcode' => $address->getZipcode(), 'country' => $address->getCountry() ? $address->getCountry()->getCode() : '', 'type' => $address->getType() ?: \XLite\Core\Config::getInstance()->Shipping->anonymous_address_type) : null;
 }