![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-google-adwords/Observer/ |
<?php /** * Google AdWords module observer * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GoogleAdwords\Observer; use Magento\Framework\Event\ObserverInterface; class SetConversionValueObserver implements ObserverInterface { /** * @var \Magento\GoogleAdwords\Helper\Data */ protected $_helper; /** * @var \Magento\Sales\Model\ResourceModel\Order\Collection */ protected $_collection; /** * @var \Magento\Framework\Registry */ private $_registry; /** * Constructor * * @param \Magento\GoogleAdwords\Helper\Data $helper * @param \Magento\Framework\Registry $registry * @param \Magento\Sales\Model\ResourceModel\Order\Collection $collection */ public function __construct( \Magento\GoogleAdwords\Helper\Data $helper, \Magento\Framework\Registry $registry, \Magento\Sales\Model\ResourceModel\Order\Collection $collection ) { $this->_helper = $helper; $this->_collection = $collection; $this->_registry = $registry; } /** * Set base grand total of order to registry * * @param \Magento\Framework\Event\Observer $observer * @return \Magento\GoogleAdwords\Observer\SetConversionValueObserver */ public function execute(\Magento\Framework\Event\Observer $observer) { if (!($this->_helper->isGoogleAdwordsActive() && $this->_helper->isDynamicConversionValue())) { return $this; } $orderIds = $observer->getEvent()->getOrderIds(); if (!$orderIds || !is_array($orderIds)) { return $this; } $this->_collection->addFieldToFilter('entity_id', ['in' => $orderIds]); $conversionValue = 0; $conversionCurrency = false; $sendOrderCurrency = $this->_helper->hasSendConversionValueCurrency(); foreach ($this->_collection as $order) { /** @var $order \Magento\Sales\Api\Data\OrderInterface */ $conversionValue += $sendOrderCurrency ? $order->getGrandTotal() : $order->getBaseGrandTotal(); $conversionCurrency = $sendOrderCurrency ? $order->getOrderCurrencyCode() : false; } $this->_registry->register( \Magento\GoogleAdwords\Helper\Data::CONVERSION_VALUE_CURRENCY_REGISTRY_NAME, $conversionCurrency ); $this->_registry->register( \Magento\GoogleAdwords\Helper\Data::CONVERSION_VALUE_REGISTRY_NAME, $conversionValue ); return $this; } }