* @copyright 2007-2020 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * International Registered Trademark & Property of PrestaShop SA */ namespace PrestaShop\Module\Ps_Googleanalytics; class GoogleAnalyticsTools { /** * filter * * @param string $gaScripts * @param int $filterable * * @return string */ public function filter($gaScripts, $filterable) { if (1 == $filterable) { return implode(';', array_unique(explode(';', $gaScripts))); } return $gaScripts; } /** * add order transaction * * @param array $products * @param array $order * * @return string|void */ public function addTransaction($products, $order) { if (!is_array($products)) { return; } $js = ''; foreach ($products as $product) { $js .= 'MBG.add(' . json_encode($product) . ');'; } return $js . 'MBG.addTransaction(' . json_encode($order) . ');'; } /** * add product impression js and product click js * * @param array $products * * @return string|void */ public function addProductImpression($products) { if (!is_array($products)) { return; } $js = ''; foreach ($products as $product) { $js .= 'MBG.add(' . json_encode($product) . ",'',true);"; } return $js; } /** * addProductClick * * @param array $products * * @return string|void */ public function addProductClick($products) { if (!is_array($products)) { return; } $js = ''; foreach ($products as $product) { $js .= 'MBG.addProductClick(' . json_encode($product) . ');'; } return $js; } /** * addProductClickByHttpReferal * * @param array $products * * @return string|void */ public function addProductClickByHttpReferal($products) { if (!is_array($products)) { return; } $js = ''; foreach ($products as $product) { $js .= 'MBG.addProductClickByHttpReferal(' . json_encode($product) . ');'; } return $js; } /** * Add product checkout info * * @param array $products * * @return string|void */ public function addProductFromCheckout($products) { if (!is_array($products)) { return; } $js = ''; foreach ($products as $product) { $js .= 'MBG.add(' . json_encode($product) . ');'; } return $js; } }