Billing.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Multishipping\Block\DataProviders;
  8. use Magento\Framework\View\Element\Block\ArgumentInterface;
  9. use Magento\Checkout\Model\CompositeConfigProvider;
  10. use Magento\Customer\Model\Address\Config as AddressConfig;
  11. use Magento\Framework\Serialize\Serializer\Json as Serializer;
  12. use Magento\Quote\Model\Quote\Address;
  13. /**
  14. * Provides additional data for multishipping checkout billing step
  15. *
  16. * @see \Magento\Multishipping\view\frontend\templates\checkout\billing.phtml
  17. */
  18. class Billing implements ArgumentInterface
  19. {
  20. /**
  21. * @var AddressConfig
  22. */
  23. private $addressConfig;
  24. /**
  25. * @var CompositeConfigProvider
  26. */
  27. private $configProvider;
  28. /**
  29. * @var Serializer
  30. */
  31. private $serializer;
  32. /**
  33. * @param AddressConfig $addressConfig
  34. * @param CompositeConfigProvider $configProvider
  35. * @param Serializer $serializer
  36. */
  37. public function __construct(
  38. AddressConfig $addressConfig,
  39. CompositeConfigProvider $configProvider,
  40. Serializer $serializer
  41. ) {
  42. $this->addressConfig = $addressConfig;
  43. $this->configProvider = $configProvider;
  44. $this->serializer = $serializer;
  45. }
  46. /**
  47. * Get address formatted as html string.
  48. *
  49. * @param Address $address
  50. * @return string
  51. */
  52. public function getAddressHtml(Address $address): string
  53. {
  54. $renderer = $this->addressConfig->getFormatByCode('html')->getRenderer();
  55. return $renderer->renderArray($address->getData());
  56. }
  57. /**
  58. * Returns serialized checkout config.
  59. *
  60. * @return string
  61. * @throws \InvalidArgumentException
  62. */
  63. public function getSerializedCheckoutConfigs(): string
  64. {
  65. return $this->serializer->serialize($this->configProvider->getConfig());
  66. }
  67. }