/**
  * {@inheritdoc}
  */
 public function getCountryInfo($countryId)
 {
     $store = $this->storeManager->getStore();
     $storeLocale = $this->scopeConfig->getValue('general/locale/code', \Magento\Store\Model\ScopeInterface::SCOPE_STORES, $store->getCode());
     $countries = $this->directoryHelper->getCountryCollection($store)->addCountryIdFilter($countryId)->load();
     if ($countries->count() == 0) {
         throw new NoSuchEntityException(__('Requested country is not available.'));
     }
     $regions = $this->directoryHelper->getRegionData();
     $country = $countries->getItemById($countryId);
     $countryInfo = $this->setCountryInfo($country, $regions, $storeLocale);
     return $countryInfo;
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function getSectionData()
 {
     $output = [];
     $regionsData = $this->directoryHelper->getRegionData();
     /**
      * @var string $code
      * @var \Magento\Directory\Model\Country $data
      */
     foreach ($this->directoryHelper->getCountryCollection() as $code => $data) {
         $output[$code]['name'] = $data->getName();
         if (array_key_exists($code, $regionsData)) {
             foreach ($regionsData[$code] as $key => $region) {
                 $output[$code]['regions'][$key]['code'] = $region['code'];
                 $output[$code]['regions'][$key]['name'] = $region['name'];
             }
         }
     }
     return $output;
 }
Пример #3
0
 /**
  * Retrieve regions
  *
  * @return array
  */
 protected function getRegions()
 {
     if (null === $this->regions) {
         $regions = $this->directoryHelper->getRegionData();
         $this->regions = [];
         unset($regions['config']);
         foreach ($regions as $countryCode => $countryRegions) {
             foreach ($countryRegions as $regionId => $regionData) {
                 $this->regions[] = ['label' => $regionData['name'], 'value' => $regionId, 'country' => $countryCode];
             }
         }
     }
     return $this->regions;
 }
Пример #4
0
 /**
  * Return countries data
  * @return array
  */
 private function getCountryData()
 {
     $country = [];
     $regionsData = $this->directoryHelper->getRegionData();
     foreach ($this->directoryHelper->getCountryCollection() as $code => $data) {
         $country[$code]['name'] = $data->getName();
         if (array_key_exists($code, $regionsData)) {
             foreach ($regionsData[$code] as $key => $region) {
                 $country[$code]['regions'][$key]['code'] = $region['code'];
                 $country[$code]['regions'][$key]['name'] = $region['name'];
             }
         }
     }
     return $country;
 }