diff --git a/app/code/Magento/GoogleAnalytics/Block/Ga.php b/app/code/Magento/GoogleAnalytics/Block/Ga.php index cb1cb1c3bdd24..bf5c2e594a038 100644 --- a/app/code/Magento/GoogleAnalytics/Block/Ga.php +++ b/app/code/Magento/GoogleAnalytics/Block/Ga.php @@ -80,8 +80,13 @@ public function getPageTrackingCode($accountId) $optPageURL = ", '" . $this->escapeHtmlAttr($pageName, false) . "'"; } + $anonymizeIp = ""; + if ($this->_googleAnalyticsData->isAnonymizedIpActive()) { + $anonymizeIp = "\nga('set', 'anonymizeIp', true);"; + } + return "\nga('create', '" . $this->escapeHtmlAttr($accountId, false) - . ", 'auto');\nga('send', 'pageview'{$optPageURL});\n"; + . ", 'auto');{$anonymizeIp}\nga('send', 'pageview'{$optPageURL});\n"; } /** @@ -105,6 +110,7 @@ public function getOrdersTrackingCode() $result = []; $result[] = "ga('require', 'ec', 'ec.js');"; + foreach ($collection as $order) { if ($order->getIsVirtual()) { $address = $order->getBillingAddress(); diff --git a/app/code/Magento/GoogleAnalytics/Helper/Data.php b/app/code/Magento/GoogleAnalytics/Helper/Data.php index fcf1f4c3f0615..df3a53f4aa003 100644 --- a/app/code/Magento/GoogleAnalytics/Helper/Data.php +++ b/app/code/Magento/GoogleAnalytics/Helper/Data.php @@ -23,6 +23,8 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper const XML_PATH_ACCOUNT = 'google/analytics/account'; + const XML_PATH_ANONYMIZE = 'google/analytics/anonymize'; + /** * Whether GA is ready to use * @@ -34,4 +36,16 @@ public function isGoogleAnalyticsAvailable($store = null) $accountId = $this->scopeConfig->getValue(self::XML_PATH_ACCOUNT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store); return $accountId && $this->scopeConfig->isSetFlag(self::XML_PATH_ACTIVE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store); } + + /** + * Whether anonymized IPs are active + * + * @param null|string|bool|int|Store $store + * @return bool + */ + public function isAnonymizedIpActive($store = null) { + $anonymize = $this->scopeConfig->getValue(self::XML_PATH_ANONYMIZE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store); + return $anonymize; + } + } diff --git a/app/code/Magento/GoogleAnalytics/etc/adminhtml/system.xml b/app/code/Magento/GoogleAnalytics/etc/adminhtml/system.xml index 1238ab525e1a4..97cfc4f80c781 100644 --- a/app/code/Magento/GoogleAnalytics/etc/adminhtml/system.xml +++ b/app/code/Magento/GoogleAnalytics/etc/adminhtml/system.xml @@ -23,6 +23,14 @@ 1 + + + + Magento\Config\Model\Config\Source\Yesno + + 1 + +