SetGoogleAnalyticsOnOrderSuccessPageViewObserver.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\GoogleAnalytics\Observer;
  7. use Magento\Framework\Event\Observer as EventObserver;
  8. use Magento\Framework\Event\ObserverInterface;
  9. /**
  10. * Google Analytics module observer
  11. *
  12. */
  13. class SetGoogleAnalyticsOnOrderSuccessPageViewObserver implements ObserverInterface
  14. {
  15. /**
  16. * Google analytics data
  17. *
  18. * @var \Magento\GoogleAnalytics\Helper\Data
  19. */
  20. protected $_googleAnalyticsData = null;
  21. /**
  22. * @var \Magento\Framework\View\LayoutInterface
  23. */
  24. protected $_layout;
  25. /**
  26. * @var \Magento\Store\Model\StoreManagerInterface
  27. */
  28. protected $_storeManager;
  29. /**
  30. * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  31. * @param \Magento\Framework\View\LayoutInterface $layout
  32. * @param \Magento\GoogleAnalytics\Helper\Data $googleAnalyticsData
  33. */
  34. public function __construct(
  35. \Magento\Store\Model\StoreManagerInterface $storeManager,
  36. \Magento\Framework\View\LayoutInterface $layout,
  37. \Magento\GoogleAnalytics\Helper\Data $googleAnalyticsData
  38. ) {
  39. $this->_googleAnalyticsData = $googleAnalyticsData;
  40. $this->_layout = $layout;
  41. $this->_storeManager = $storeManager;
  42. }
  43. /**
  44. * Add order information into GA block to render on checkout success pages
  45. *
  46. * @param EventObserver $observer
  47. * @return void
  48. */
  49. public function execute(EventObserver $observer)
  50. {
  51. $orderIds = $observer->getEvent()->getOrderIds();
  52. if (empty($orderIds) || !is_array($orderIds)) {
  53. return;
  54. }
  55. $block = $this->_layout->getBlock('google_analytics');
  56. if ($block) {
  57. $block->setOrderIds($orderIds);
  58. }
  59. }
  60. }