Smarty foreach到json javascript

问题描述 投票:0回答:1

我正在尝试为在线商店构建谷歌动态再营销,我在购物车中有很多产品ID的问题。

这是我的代码:

{literal}
<script type="text/javascript">
  var ids = "{/literal}{foreach from=$products|json_decode key=pId item=p name=i}{$p.id_product}{if not $smarty.foreach.i.last}, {/if}{/foreach}{literal}";
  var total = "{/literal}{displayPrice price=$total_products_wt}{literal}";
  total = total.replace(/[zł]/g, "");
  total = total.replace(/[,]/g, ".");
            dataLayer.push({
                'event': 'fireRemarketingTag',
                'google_tag_params': {
                    'ecomm_prodid': ids,
                    'ecomm_pagetype': 'cart',
                    'ecomm_totalvalue': total
                }
            });
        </script>

 {/literal}

仍然从谷歌标签助手收到错误 - “多个产品ID需要存储在一个数组中。”

它看起来像这样

ecomm_prodid:367\, 74, ecomm_pagetype:cart, ecomm_totalvalue:109.80
"ecomm_prodid": "367,
      74",

它看起来应该是这样的;

ecomm_prodid:367,74, ecomm_pagetype:cart, ecomm_totalvalue:109.80
"ecomm_prodid":       [
        367,
        74
      ],
javascript php json smarty google-tag-manager
1个回答
0
投票

我认为你唯一需要做的就是将"定义周围的var ids字符更改为[],如下所示:

var ids = [{/literal}{foreach from=$products|json_decode key=pId item=p name=i}{$p.id_product}{if not $smarty.foreach.i.last}, {/if}{/foreach}{literal}];
© www.soinside.com 2019 - 2024. All rights reserved.