如何将 javascript 跟踪代码添加到所有 magento 页面?

How do I add javascript tracking code to all magento pages?

我需要在结束 "body" 标记之前将 java 脚本跟踪代码添加到我的 magento 商店的所有页面。有谁知道我需要把它放在什么文件中?我是否必须为 Magento 修改 JavaScript 或只是将其粘贴进去?

回答您的问题:如何将 javascript 添加到每个页面

在模板中,通常您会在每个页面上加载页脚块,因此请在此处找到 phtml 文件;

app/design/frontend/XXX/YYY/template/page/html/footer.phtml

其中 xxx/yyy 是您的主题目录。在此处添加跟踪代码,它将加载到每个页面上。

关于它是否需要修改 - 这实际上取决于您希望做什么。如果您需要插入篮子值、客户编号(如果存在)等变量,那么是的,您将需要向其中添加那些 php 变量,这就是您可能 运行 遇到麻烦的地方。如果您正在使用缓存,那么页脚可能不是最佳位置,因为您最终可能会在代码段中使用缓存的变量值。如果它动态地为诸如页面 url 之类的东西提取值,那么你会没事的。

另一个问题是这会加载到您的结帐页面 - 因此如果它从 http:// 位置调用 js 文件,您的页面将无法通过 SSL 验证。

您可以通过将 layout 文件添加到您的模块配置来执行此操作:

<config>
    ...
    <frontend>
        <layout>
            <updates>
                <mymodule>
                    <file>mymodule.xml</file>
                </mymodule>
            </updates>
        </layout>
    </frontend>
    ...
</config>

mymodule.xml文件添加到app/design/frontend/base/default/layout/文件夹中,并在其中放入以下内容:

<layout version="1.0.0">
    <default>
        <reference name="before_body_end">
            <block type="core/template" name="mytracking.block" after="-" template="mynamespace/mymodule/tracking.phtml">
                <action method="setCacheLifetime"><s>0</s></action>
            </block>
        </reference>
    </default>
</layout> 

现在您可以在此模板文件 app/design/frontend/base/default/template/mynamespace/mymodule/tracking.phtml 中添加跟踪 javascript 代码。它将打印在所有 Magento 页面中。

编辑

我添加了一段代码,可以为您的跟踪块禁用缓存,感谢@PixieMedia 让我知道。

最简单的方法 - 通过后端,有一个专门针对此需求的配置部分。

System -> Configuration -> General -> Design Section -> Footer Tab -> Miscellaneous HTML

它依赖于您的主题在结束 body 标记之前调用主模板文件中的 getAbsoluteFooter() 方法,请注意这一点。

<?php echo $this->getAbsoluteFooter() ?>
</body>