Um das Google Analytics Plugin (xt_googleanalytics) auf den neusten Stand zu bringen, sind Änderungen im Installer (xt_googleanalytics.xml) und in der Klasse (class.xt_googleanalytics.php) nötig. Nach den Änderungen muss das Plugin neu installiert werden.
Die erste Änderung im Installer bezieht sich auf den Hookpoint, dieser ändert sich von “index_footer_tpl” auf “display.php:content_head”, da der Tracking-Code nun im <head>-Bereich integriert wird.
Änderung im Intaller (./plugins/xt_googleanalytics/installer/xt_googleanalytics.xml)
Im Installer suchen:
index_footer_tpl
Ersetzten mit:
display.php:content_head
Die zweite Änderung erfolgt in der Klasse, um den Tracking-Code für das Asynchronous und das Ecommerce Tracking anzupassen.
Änderung in der Klasse (./plugins/xt_googleanalytics/classes/class.xt_googleanalytics.php)
Die beiden Funktionen “_getStandardCode()” und “_getEcommerceCode()” mit folgendem Code ersetzten:
function _getStandardCode() { $js='<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', ''.XT_GOOGLE_ANALYTICS_UA.'']);'; if (XT_GOOGLE_ANALYTICS_ANON=='true') $js.='_gaq.push (['_gat._anonymizeIp']);'."n"; $js.=' _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> '; return $js; } function _getEcommerceCode() { global $db, $language, $success_order; $js='<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', ''.XT_GOOGLE_ANALYTICS_UA.'']);'."n"; if (XT_GOOGLE_ANALYTICS_ANON=='true') $js.='_gaq.push (['_gat._anonymizeIp']);'."n"; $js.=' _gaq.push(['_trackPageview']);'."n"; // add order data $query = "SELECT shop_title FROM xt_stores WHERE shop_id='" . $success_order->order_data['shop_id'] . "' LIMIT 0,1"; $rs = $db->Execute($query); $tax = $success_order->order_total['total']['plain']-$success_order->order_total['total_otax']['plain']; $js.=' _gaq.push(['_addTrans', ''.$success_order->order_data['orders_id'].'', ''.$rs->fields['shop_title'].'', ''.$success_order->order_total['total']['plain'].'', ''.round($tax, 2).'', ''.round($success_order->order_total_data[0]['orders_total_price']['plain'], 2) .'', ''.$success_order->order_data['delivery_city'].'', ''.$success_order->order_data['delivery_postcode'].'', ''.$success_order->order_data['delivery_country_code'].'' ]); '; // add products foreach ($success_order->order_products as $key => $arr) { $query = "SELECT categories_id FROM ".TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id='" . $arr['products_id'] . "' LIMIT 0,1"; $rs = $db->Execute($query); $query = "SELECT categories_name FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE categories_id='" . $rs->fields['categories_id'] . "' and language_code = '" . $language->code . "' LIMIT 0,1"; $rs = $db->Execute($query); $js.=' _gaq.push(['_addItem', ''.$success_order->order_data['orders_id'].'', ''.$arr['products_id'].'', ''.addslashes($arr['products_name']).'', ''.$rs->fields['categories_name'].'', ''.$arr['products_price']['plain'].'', ''.$arr['products_quantity'].'' ]); '; } $js.=' _gaq.push(['_trackTrans']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> '; return $js; }