-
-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a4e1233
commit 2856f6e
Showing
8 changed files
with
154 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<?xml version="1.0"?> | ||
<!-- | ||
/** | ||
* GoogleTagManager2 plugin for Magento | ||
* | ||
* @author Yireo (https://www.yireo.com/) | ||
* @copyright Copyright 2022 Yireo (https://www.yireo.com/) | ||
* @license Open Source License (OSL v3) | ||
*/ | ||
--> | ||
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> | ||
<body> | ||
<referenceContainer name="after.body.start"> | ||
<block name="yireo_googletagmanager2.logger-script" | ||
template="Yireo_GoogleTagManager2::hyva/script-logger.phtml"/> | ||
</referenceContainer> | ||
<referenceBlock name="yireo_googletagmanager2.data-layer-debugging" | ||
template="Yireo_GoogleTagManager2::hyva/data-layer-debugging.phtml"/> | ||
<referenceBlock name="yireo_googletagmanager2.script-additions" | ||
template="Yireo_GoogleTagManager2::hyva/script-additions.phtml"/> | ||
</body> | ||
</page> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<?php declare(strict_types=1); | ||
|
||
use Magento\Framework\View\Element\Template; | ||
use Yireo\GoogleTagManager2\Config\Config; | ||
use Yireo\GoogleTagManager2\ViewModel\DataLayer; | ||
|
||
/** @var DataLayer $dataLayerViewModel */ | ||
/** @var Config $config */ | ||
/** @var Template $block */ | ||
$config = $block->getConfig(); | ||
$dataLayerViewModel = $block->getDataLayerViewModel(); | ||
$dataLayerJson = $dataLayerViewModel->getDataLayerAsJson(); | ||
$dataLayerEventsJsonChunks = $dataLayerViewModel->getDataLayerEventsAsJsonChunks(); | ||
?> | ||
<script> | ||
logger('initial state (page)', <?= /* @noEscape */ $dataLayerJson ?>); | ||
<?php foreach ($dataLayerEventsJsonChunks as $dataLayerEventsJsonChunk): ?> | ||
logger('event (page)', <?= /* @noEscape */ $dataLayerEventsJsonChunk ?>); | ||
<?php endforeach; ?> | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php declare(strict_types=1); | ||
|
||
/** | ||
* GoogleTagManager2 plugin for Magento | ||
* | ||
* @author Yireo (http://www.yireo.com/) | ||
* @copyright Copyright (c) 2019 Yireo (http://www.yireo.com/) | ||
* @license Open Software License | ||
*/ | ||
|
||
use Magento\Framework\View\Element\Template; | ||
use Yireo\GoogleTagManager2\ViewModel\Commons; | ||
|
||
/** @var Template $block */ | ||
/** @var Commons $commons */ | ||
$commons = $block->getCommonsViewModel(); | ||
|
||
// @todo: rewrite Yireo_GoogleTagManager2/js/product/clicks | ||
// @todo: rewrite Yireo_GoogleTagManager2/js/generic | ||
?> | ||
<script> | ||
document.querySelector('.product-items a.product').addEventListener('click', function(event) { | ||
const debugClicks = YIREO_GOOGLETAGMANAGER2_DEBUG_CLICKS || false; | ||
const $parent = document.querySelector(this).parent(); | ||
const regex = /_(\d+)$/; | ||
const matches = $parent.attr('id').match(regex); | ||
const productId = matches[1]; | ||
const productData = window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_' + productId] || {}; | ||
productData.item_id = productId; | ||
|
||
const gtmData = { | ||
'event': 'select_item', | ||
'ecommerce': { | ||
'items': [productData] | ||
} | ||
} | ||
|
||
logger('page event "select_item" (js)', gtmData); | ||
dataLayer.push(gtmData); | ||
|
||
if (debugClicks && confirm("Press to continue with redirect") === false) { | ||
event.preventDefault(); | ||
} | ||
}); | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<?php declare(strict_types=1); | ||
?> | ||
<script> | ||
function logger(...args) { | ||
const debug = window.YIREO_GOOGLETAGMANAGER2_DEBUG || false; | ||
if (false === debug) { | ||
return; | ||
} | ||
|
||
var css = 'color:white; background-color:green; padding:1px;' | ||
console.log('%cYireo_GoogleTagManager2', css, ...args); | ||
} | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?php declare(strict_types=1); | ||
|
||
use Magento\Framework\View\Element\Template; | ||
use Yireo\GoogleTagManager2\ViewModel\DataLayer; | ||
|
||
/** @var DataLayer $dataLayerViewModel */ | ||
/** @var Template $block */ | ||
$dataLayerViewModel = $block->getDataLayerViewModel(); | ||
$dataLayerJson = $dataLayerViewModel->getDataLayerAsJson(); | ||
$dataLayerEventsJsonChunks = $dataLayerViewModel->getDataLayerEventsAsJsonChunks(); | ||
?> | ||
<script> | ||
require(['yireoGoogleTagManagerLogger'], function (logger) { | ||
logger('initial state (page)', <?= /* @noEscape */ $dataLayerJson ?>); | ||
}); | ||
|
||
<?php foreach ($dataLayerEventsJsonChunks as $dataLayerEventsJsonChunk): ?> | ||
require(['yireoGoogleTagManagerLogger'], function (logger) { | ||
logger('event (page)', <?= /* @noEscape */ $dataLayerEventsJsonChunk ?>); | ||
}); | ||
<?php endforeach; ?> | ||
</script> |