如何解决Prestashop 1.7 - 将变量从 Smarty 分配给 JS 时,转换单引号
Smarty 3.1.33 给JS分配字符串变量时,单引号'转为实体'
我的代码:
{$newOrder = $newOrder|cat :"[{ldelim}\r\n'transactionId':'$orderID'\r\n"|cat: "'transactionAffiliation': 'site.com',\r\n"|cat: "'transactionTotal': '$totalPrice',\r\n"|cat :"'transactionProducts': $orderProducts\r\n {rdelim}]"}
<script>dataLayer = {$newOrder|escape:'html':'UTF-8'};</script>
获取:
<script>dataLayer = [{
'transactionId':'7214'
'transactionAffiliation': 'site.com','transactionTotal': '608 грн.','transactionProducts': [{
'sku':'17962','name':'Детские ходунки M 0591-S микс 4 цвета','category':'Ходунки','price':445,'quantity':1
}],[{
'sku':'28963','name':'Планшет обучающий SK 0019','category':'Говорящие азбуки','price':163,'quantity':1
}]
}];
</script>
需要(没有“' ;”):
<script>dataLayer = [{
'transactionId': '1234','transactionAffiliation': 'site.com','transactionTotal': 11.99,'transactionProducts': [{
'sku': 'DD44','name': 'T-Shirt','category': 'Apparel','price': 11.99,'quantity': 1
}]
}];
</script>
解决方法
由于 prestashop 在 1.7+ 版本中改变了转义方式,这引起了很多头痛。
您可以尝试删除这样的自动过滤器{$newOrder nofilter}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。