DirectoryData.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Checkout\CustomerData;
  7. use Magento\Customer\CustomerData\SectionSourceInterface;
  8. /**
  9. * Cart source
  10. */
  11. class DirectoryData implements SectionSourceInterface
  12. {
  13. /**
  14. * @var \Magento\Directory\Helper\Data
  15. */
  16. protected $directoryHelper;
  17. /**
  18. * @param \Magento\Directory\Helper\Data $directoryHelper
  19. * @codeCoverageIgnore
  20. */
  21. public function __construct(\Magento\Directory\Helper\Data $directoryHelper)
  22. {
  23. $this->directoryHelper = $directoryHelper;
  24. }
  25. /**
  26. * {@inheritdoc}
  27. */
  28. public function getSectionData()
  29. {
  30. $output = [];
  31. $regionsData = $this->directoryHelper->getRegionData();
  32. /**
  33. * @var string $code
  34. * @var \Magento\Directory\Model\Country $data
  35. */
  36. foreach ($this->directoryHelper->getCountryCollection() as $code => $data) {
  37. $output[$code]['name'] = $data->getName();
  38. if (array_key_exists($code, $regionsData)) {
  39. foreach ($regionsData[$code] as $key => $region) {
  40. $output[$code]['regions'][$key]['code'] = $region['code'];
  41. $output[$code]['regions'][$key]['name'] = $region['name'];
  42. }
  43. }
  44. }
  45. return $output;
  46. }
  47. }