File tree Expand file tree Collapse file tree 3 files changed +74
-0
lines changed
Expand file tree Collapse file tree 3 files changed +74
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Copyright © Magefan ([email protected] ). All rights reserved. 4+ * Please visit Magefan.com for license details (https://magefan.com/end-user-license-agreement).
5+ */
6+
7+ declare (strict_types=1 );
8+
9+ namespace Magefan \GoogleTagManager \Api \DataLayer ;
10+
11+ use Magento \Framework \Session \SessionManager as MagentoSessionManager ;
12+
13+ interface SessionManagerInterface
14+ {
15+ /**
16+ * @param MagentoSessionManager $session
17+ * @param array $data
18+ * @return void
19+ */
20+ public function push (MagentoSessionManager $ session , array $ data ): void ;
21+
22+ /**
23+ * Get GTM datalayer
24+ *
25+ * @param MagentoSessionManager $order
26+ * @return array
27+ */
28+ public function get (MagentoSessionManager $ session ): array ;
29+
30+
31+ }
Original file line number Diff line number Diff line change 1+ <?php
2+ /**
3+ * Copyright © Magefan ([email protected] ). All rights reserved. 4+ * Please visit Magefan.com for license details (https://magefan.com/end-user-license-agreement).
5+ */
6+
7+ namespace Magefan \GoogleTagManager \Model \DataLayer ;
8+
9+ use Magefan \GoogleTagManager \Api \DataLayer \SessionManagerInterface ;
10+ use Magento \Framework \Session \SessionManager as MagentoSessionManager ;
11+
12+ /**
13+ * Abstract management model
14+ */
15+ class SessionManager implements SessionManagerInterface
16+ {
17+
18+ /**
19+ * @param MagentoSessionManager $session
20+ * @param array $data
21+ * @return void
22+ */
23+ public function push (MagentoSessionManager $ session , array $ data ): void
24+ {
25+ if ($ data ) {
26+ $ dataLayers = $ session ->getMfDataLayers () ?: [];
27+ $ dataLayers [] = $ data ;
28+ $ session ->setMfDataLayers ($ dataLayers );
29+ }
30+ }
31+
32+ /**
33+ * @param MagentoSessionManager $order
34+ * @return array
35+ */
36+ public function get (MagentoSessionManager $ session ): array
37+ {
38+ $ data = $ session ->getMfDataLayers () ?: [];
39+ $ session ->setMfDataLayers (null );
40+ return $ data ;
41+ }
42+ }
Original file line number Diff line number Diff line change 1313 <preference for =" Magefan\GoogleTagManager\Api\DataLayer\Cart\ItemInterface" type =" Magefan\GoogleTagManager\Model\DataLayer\Cart\Item" />
1414 <preference for =" Magefan\GoogleTagManager\Api\DataLayer\Order\ItemInterface" type =" Magefan\GoogleTagManager\Model\DataLayer\Order\Item" />
1515 <preference for =" Magefan\GoogleTagManager\Api\DataLayer\Product\ItemInterface" type =" Magefan\GoogleTagManager\Model\DataLayer\Product\Item" />
16+ <preference for =" Magefan\GoogleTagManager\Api\DataLayer\SessionManagerInterface" type =" Magefan\GoogleTagManager\Model\DataLayer\SessionManager" />
1617 <type name =" Magefan\GoogleTagManager\Model\DataLayer\Purchase" >
1718 <plugin name =" Plugin_Magefan_GoogleTagManager_Model_DataLayer_Purchase" type =" Magefan\GoogleTagManager\Plugin\Magefan\GoogleTagManager\Model\DataLayer\Purchase" sortOrder =" 10" disabled =" false" />
1819 </type >
You can’t perform that action at this time.
0 commit comments