AfterAddressSave.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Weee\Observer;
  7. use Magento\Customer\Model\Address;
  8. use Magento\Framework\Event\Observer;
  9. use Magento\Framework\Event\ObserverInterface;
  10. use Magento\Framework\Module\Manager;
  11. use Magento\PageCache\Model\Config;
  12. use Magento\Tax\Api\TaxAddressManagerInterface;
  13. use Magento\Weee\Helper\Data;
  14. class AfterAddressSave implements ObserverInterface
  15. {
  16. /**
  17. * @var Data
  18. */
  19. protected $weeeHelper;
  20. /**
  21. * Module manager
  22. *
  23. * @var Manager
  24. */
  25. private $moduleManager;
  26. /**
  27. * Cache config
  28. *
  29. * @var Config
  30. */
  31. private $cacheConfig;
  32. /**
  33. * Manager to save data in customer session.
  34. *
  35. * @var TaxAddressManagerInterface
  36. */
  37. private $addressManager;
  38. /**
  39. * @param Data $weeeHelper
  40. * @param Manager $moduleManager
  41. * @param Config $cacheConfig
  42. * @param TaxAddressManagerInterface $addressManager
  43. */
  44. public function __construct(
  45. Data $weeeHelper,
  46. Manager $moduleManager,
  47. Config $cacheConfig,
  48. TaxAddressManagerInterface $addressManager
  49. ) {
  50. $this->weeeHelper = $weeeHelper;
  51. $this->moduleManager = $moduleManager;
  52. $this->cacheConfig = $cacheConfig;
  53. $this->addressManager = $addressManager;
  54. }
  55. /**
  56. * @param Observer $observer
  57. * @return void
  58. * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  59. */
  60. public function execute(Observer $observer)
  61. {
  62. if ($this->moduleManager->isEnabled('Magento_PageCache')
  63. && $this->cacheConfig->isEnabled()
  64. && $this->weeeHelper->isEnabled()
  65. ) {
  66. /** @var $customerAddress Address */
  67. $address = $observer->getCustomerAddress();
  68. $this->addressManager->setDefaultAddressAfterSave($address);
  69. }
  70. }
  71. }