AddressDataProcessorPlugin.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Persistent\Model\Checkout;
  7. use Magento\Quote\Api\Data\AddressAdditionalDataInterface as AddressAdditionalData;
  8. use Magento\Persistent\Helper\Session as PersistentSession;
  9. use Magento\Persistent\Helper\Data as PersistentHelper;
  10. use Magento\Checkout\Model\Session as CheckoutSession;
  11. use Magento\Quote\Model\AddressAdditionalDataProcessor;
  12. class AddressDataProcessorPlugin
  13. {
  14. /**
  15. * @var PersistentSession
  16. */
  17. private $persistentSession;
  18. /**
  19. * @var PersistentHelper
  20. */
  21. private $persistentHelper;
  22. /**
  23. * @var CheckoutSession
  24. */
  25. private $checkoutSession;
  26. /**
  27. * @param PersistentHelper $persistentHelper
  28. * @param PersistentSession $persistentSession
  29. * @param CheckoutSession $checkoutSession
  30. */
  31. public function __construct(
  32. PersistentHelper $persistentHelper,
  33. PersistentSession $persistentSession,
  34. CheckoutSession $checkoutSession
  35. ) {
  36. $this->persistentHelper = $persistentHelper;
  37. $this->persistentSession = $persistentSession;
  38. $this->checkoutSession = $checkoutSession;
  39. }
  40. /**
  41. * Process address additional data
  42. *
  43. * @param AddressAdditionalDataProcessor $subject
  44. * @param AddressAdditionalData $additionalData
  45. * @return void
  46. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  47. */
  48. public function beforeProcess(AddressAdditionalDataProcessor $subject, AddressAdditionalData $additionalData)
  49. {
  50. if (!$this->persistentHelper->isEnabled() || !$this->persistentHelper->isRememberMeEnabled()) {
  51. return;
  52. }
  53. $checkboxStatus = $additionalData->getExtensionAttributes()->getPersistentRememberMe();
  54. $isRememberMeChecked = empty($checkboxStatus) ? false : true;
  55. $this->persistentSession->setRememberMeChecked($isRememberMeChecked);
  56. $this->checkoutSession->setRememberMeChecked($isRememberMeChecked);
  57. }
  58. }