/** * {@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; }
/** * {@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; }
/** * 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; }
/** * 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; }