DepersonalizePlugin.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Persistent\Model\Layout;
  7. use Magento\PageCache\Model\DepersonalizeChecker;
  8. /**
  9. * Class DepersonalizePlugin
  10. */
  11. class DepersonalizePlugin
  12. {
  13. /**
  14. * @var DepersonalizeChecker
  15. */
  16. protected $depersonalizeChecker;
  17. /**
  18. * @var \Magento\Persistent\Model\Session
  19. */
  20. protected $persistentSession;
  21. /**
  22. * Constructor
  23. *
  24. * @param DepersonalizeChecker $depersonalizeChecker
  25. * @param \Magento\Persistent\Model\Session $persistentSession
  26. */
  27. public function __construct(
  28. DepersonalizeChecker $depersonalizeChecker,
  29. \Magento\Persistent\Model\Session $persistentSession
  30. ) {
  31. $this->persistentSession = $persistentSession;
  32. $this->depersonalizeChecker = $depersonalizeChecker;
  33. }
  34. /**
  35. * After generate Xml
  36. *
  37. * @param \Magento\Framework\View\LayoutInterface $subject
  38. * @param \Magento\Framework\View\LayoutInterface $result
  39. * @return \Magento\Framework\View\LayoutInterface
  40. */
  41. public function afterGenerateXml(
  42. \Magento\Framework\View\LayoutInterface $subject,
  43. \Magento\Framework\View\LayoutInterface $result
  44. ) {
  45. if ($this->depersonalizeChecker->checkIfDepersonalize($subject)) {
  46. $this->persistentSession->setCustomerId(null);
  47. }
  48. return $result;
  49. }
  50. }