将Google AdWords转换跟踪(javascript)代码添加到PrestaShop/Smarty页面

将Google AdWords转换跟踪(javascript)代码添加到PrestaShop/Smarty页面,javascript,prestashop,smarty3,Javascript,Prestashop,Smarty3,我正在运行一个PrestaShop网站,希望将其与Google AdWords和转换跟踪功能集成。PrestaShop代码在Smarty 3中 现在我发现我可以将Google的JS代码放在tpl文件的末尾:order-confirmation.tpl。以下是谷歌代码: <script type="text/javascript"> /* <![CDATA[ */ var google_conversion_id = <my id>; var google_co

我正在运行一个PrestaShop网站,希望将其与Google AdWords和转换跟踪功能集成。PrestaShop代码在Smarty 3中

现在我发现我可以将Google的JS代码放在tpl文件的末尾:order-confirmation.tpl。以下是谷歌代码:

<script type="text/javascript"> 
/* <![CDATA[ */ 
var google_conversion_id = <my id>; 
var google_conversion_language = "en"; 
var google_conversion_format = "3"; 
var google_conversion_color = "ffffff"; 
var google_conversion_label = "<my label>"; 
var google_conversion_value = {$total}; 
/* ]]> */ 
</script> 
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js"> 
</script> 
<noscript> 
<div style="display:inline;"> 
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/<id>/?value=0&amp;label=<label>&amp;guid=ON&amp;script=0"/> 
</div> 
</noscript>

/* ; 
var google_conversion_language=“en”;
var google_conversion_format=“3”;
var google_conversion_color=“ffffff”;
var google_conversion_label=“”;
var google_conversion_value={$total};
/* ]]> */ 
/?值=0&;标签=&;guid=打开&;脚本=0“/>
问题是向JS变量
google\u conversion\u value
提供订单总值的内容

我使用的是Smarty 3,我尝试在{literal}标记之间包含整个JS块,或者不包含空格,不包含空格,任何东西都可以


同样的转换值也存在于节中,这是googleadservices链接中的一个参数,它当前设置为0,但我希望$total值也在那里。

看起来我必须调用
$cart
对象上的
getOrderTotal

var google_conversion_value = {$cart->getOrderTotal(false, Cart::BOTH_WITHOUT_SHIPPING)};
第一个参数是您是否希望获得含税总额。 第二个参数是Cart.php中的常量:

const ONLY_PRODUCTS = 1;
const ONLY_DISCOUNTS = 2;
const BOTH = 3;
const BOTH_WITHOUT_SHIPPING = 4;
const ONLY_SHIPPING = 5;
const ONLY_WRAPPING = 6;
const ONLY_PRODUCTS_WITHOUT_SHIPPING = 7;
const ONLY_PHYSICAL_PRODUCTS_WITHOUT_SHIPPING = 8;

看起来我必须在
$cart
对象上调用
getOrderTotal

var google_conversion_value = {$cart->getOrderTotal(false, Cart::BOTH_WITHOUT_SHIPPING)};
第一个参数是您是否希望获得含税总额。 第二个参数是Cart.php中的常量:

const ONLY_PRODUCTS = 1;
const ONLY_DISCOUNTS = 2;
const BOTH = 3;
const BOTH_WITHOUT_SHIPPING = 4;
const ONLY_SHIPPING = 5;
const ONLY_WRAPPING = 6;
const ONLY_PRODUCTS_WITHOUT_SHIPPING = 7;
const ONLY_PHYSICAL_PRODUCTS_WITHOUT_SHIPPING = 8;

很抱歉,
$cart->getOrderTotal()
无法以这种方式工作,因为到达order-confirmation.tpl时,
$cart
变量设置为null。我们必须找到另一种方式

我找到了一种不太聪明的方法,但到目前为止已经完成了这项工作。我们必须使用id_Cart参数调用Cart静态方法getTotalCart。问题是我们没有任何带有此参数的smarty var。我找到的唯一方法是从请求URI获取它

因此,首先,以这种方式获取购物车id(使用regex\u replace):

然后使用以下参数调用getTotalCart方法:

{$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}
因此,完整的代码是:

<script type="text/javascript"> 
    /* <![CDATA[ */ 

    {assign var='id_cart' value={$request_uri|regex_replace:"/.*id_cart=([\d]*).*/":"$1"}}

    {literal}
    var google_conversion_id = <my id>; 
    var google_conversion_language = "en"; 
    var google_conversion_format = "3"; 
    var google_conversion_color = "ffffff"; 
    var google_conversion_label = "<my label>"; 
    var google_conversion_value = {/literal}{$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}{literal};{/literal}
    /* ]]> */ 
</script> 

/* ; 
var google_conversion_language=“en”;
var google_conversion_format=“3”;
var google_conversion_color=“ffffff”;
var google_conversion_label=“”;
var google_conversion_value={/literal}{$cart->getTotalCart($id_cart)| regex_replace:“/[\D]+.*/”:”“}{literal};{/literal}
/* ]]> */ 

恐怕
$cart->getOrderTotal()
无法以这种方式工作,因为到达order-confirmation.tpl时,
$cart
变量被设置为null。我们必须找到另一种方式

我找到了一种不太聪明的方法,但到目前为止已经完成了这项工作。我们必须使用id_Cart参数调用Cart静态方法getTotalCart。问题是我们没有任何带有此参数的smarty var。我找到的唯一方法是从请求URI获取它

因此,首先,以这种方式获取购物车id(使用regex\u replace):

然后使用以下参数调用getTotalCart方法:

{$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}
因此,完整的代码是:

<script type="text/javascript"> 
    /* <![CDATA[ */ 

    {assign var='id_cart' value={$request_uri|regex_replace:"/.*id_cart=([\d]*).*/":"$1"}}

    {literal}
    var google_conversion_id = <my id>; 
    var google_conversion_language = "en"; 
    var google_conversion_format = "3"; 
    var google_conversion_color = "ffffff"; 
    var google_conversion_label = "<my label>"; 
    var google_conversion_value = {/literal}{$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}{literal};{/literal}
    /* ]]> */ 
</script> 

/* ; 
var google_conversion_language=“en”;
var google_conversion_format=“3”;
var google_conversion_color=“ffffff”;
var google_conversion_label=“”;
var google_conversion_value={/literal}{$cart->getTotalCart($id_cart)| regex_replace:“/[\D]+.*/”:”“}{literal};{/literal}
/* ]]> */ 

它似乎在prestashop v1.5.4中对我有效

<script type="text/javascript">
/* <![CDATA[ */
{assign var='id_cart' value={$request_uri|regex_replace:"/.*id_cart=([\d]*).*/":"$1"}}
{assign var='total_cart' value={$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}}
{literal}
var google_conversion_id = YOUR_CONVERSION_ID;
var google_conversion_language = "en"; // or your language iso
var google_conversion_format = "3"; // or your format
var google_conversion_color = "ffffff";
var google_conversion_label = "YOUR_CONVERSION_LABEL";
var google_conversion_value = {/literal}{$total_cart}{literal};{/literal}
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/YOUR_CONVERSION_ID/?value={$total_cart}&amp;label=YOUR_CONVERSION_LABEL&amp;guid=ON&amp;script=0"/>
</div>
</noscript>

/*getTotalCart($id_cart)| regex_replace:“/[\D]+.*/”:“}”
{literal}
var google_conversion_id=您的_conversion_id;
var google\u conversion\u language=“en”//或您的语言iso
var google\u conversion\u format=“3”//或您的格式
var google_conversion_color=“ffffff”;
var google_conversion_label=“您的_conversion_label”;
var google_conversion_value={/literal}{$total_cart}{literal};{/literal}
/* ]]> */

它似乎在prestashop v1.5.4中对我有效

<script type="text/javascript">
/* <![CDATA[ */
{assign var='id_cart' value={$request_uri|regex_replace:"/.*id_cart=([\d]*).*/":"$1"}}
{assign var='total_cart' value={$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}}
{literal}
var google_conversion_id = YOUR_CONVERSION_ID;
var google_conversion_language = "en"; // or your language iso
var google_conversion_format = "3"; // or your format
var google_conversion_color = "ffffff";
var google_conversion_label = "YOUR_CONVERSION_LABEL";
var google_conversion_value = {/literal}{$total_cart}{literal};{/literal}
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/YOUR_CONVERSION_ID/?value={$total_cart}&amp;label=YOUR_CONVERSION_LABEL&amp;guid=ON&amp;script=0"/>
</div>
</noscript>

/*getTotalCart($id_cart)| regex_replace:“/[\D]+.*/”:“}”
{literal}
var google_conversion_id=您的_conversion_id;
var google\u conversion\u language=“en”//或您的语言iso
var google\u conversion\u format=“3”//或您的格式
var google_conversion_color=“ffffff”;
var google_conversion_label=“您的_conversion_label”;
var google_conversion_value={/literal}{$total_cart}{literal};{/literal}
/* ]]> */