Пример #1
0
 /**
  * Return true if all address fields ar enabled
  *
  * @return boolean
  */
 protected function isAddressFieldsEnabled()
 {
     $result = false;
     $allowedAddressFields = array('country_code', 'state_id', 'custom_state', 'zipcode');
     // Find all enabled address fields
     $enabledAddressFields = \XLite\Core\Database::getRepo('XLite\\Model\\AddressField')->findByEnabled(true);
     if ($enabledAddressFields) {
         $addressFields = array();
         foreach ($enabledAddressFields as $field) {
             $addressFields[] = $field->getServiceName();
         }
         $addressFields = array_intersect($addressFields, $allowedAddressFields);
         if ($addressFields) {
             // Get processors required address fields
             $processorFields = \XLite\Model\Shipping::getRequiredAddressFields();
             if ($processorFields) {
                 foreach ($processorFields as $processor => $fields) {
                     $intersect = array_intersect($fields, $addressFields);
                     if (count($intersect) === count($fields)) {
                         $result = true;
                         break;
                     }
                 }
             }
         }
     }
     return $result;
 }