用于将字典转换为字符串并将其推送到数据层的 Smarty 语法
Smarty syntax for turning a dictionary into a string and push it into the data layer
我正在尝试找到一种方法将字符串变量(来自字典)传递到我网站的数据层。
我的数组是使用以下代码片段构建的:
[{foreach from=$orderArticles item="currOrderArticle"}]
[{assign var="currBasePrice2" value=$currOrderArticle-getBasePrice()}]
product_list.push(
{
id: "[{$currOrderArticle-oxorderarticles__oxartnum->value}]",
price: [{$currBasePrice2->getBruttoPrice()}],
quantity: [{$currOrderArticle-oxorderarticles__oxamount->value}]
}
);
products_info.push(
{
transaction_id: '[{$order->oxorder__oxordernr-value}]',
transaction_cid: '[{$order->oxorder__oxuserid-value}]',
item_id: '[{$currOrderArticle-oxorderarticles__oxartnum->value}]',
item_value: '[{$basket-getDiscountedNettoPrice()}]',
item_quantity: '[{$currOrderArticle-oxorderarticles__oxamount->value}]'
}
);
[{/foreach}]
如果我想将它传递给数据层,我会执行以下操作:
dataLayer.push({
ProductsInfo: products_info
});
这很好用,问题是我实际上想修改这个数组。
在将其传递到数据层之前,我想对其应用以下内容:
products_info|json_encode|escape:'url'
但是当我在推送过程中尝试这样做时,它不起作用:
dataLayer.push({
ProductsInfo: products_info|json_encode|escape:'url'
});
正如我在另一个 post 中告诉您的那样,Smarty 表达式必须用定界符括起来,在您的情况下 [{ 和 }]
另外,当您使用 javascript 中的字符串时,它必须用引号引起来:
dataLayer.push({
ProductsInfo: '[{products_info|json_encode|escape:'url'}]'
});
我正在尝试找到一种方法将字符串变量(来自字典)传递到我网站的数据层。
我的数组是使用以下代码片段构建的:
[{foreach from=$orderArticles item="currOrderArticle"}]
[{assign var="currBasePrice2" value=$currOrderArticle-getBasePrice()}]
product_list.push(
{
id: "[{$currOrderArticle-oxorderarticles__oxartnum->value}]",
price: [{$currBasePrice2->getBruttoPrice()}],
quantity: [{$currOrderArticle-oxorderarticles__oxamount->value}]
}
);
products_info.push(
{
transaction_id: '[{$order->oxorder__oxordernr-value}]',
transaction_cid: '[{$order->oxorder__oxuserid-value}]',
item_id: '[{$currOrderArticle-oxorderarticles__oxartnum->value}]',
item_value: '[{$basket-getDiscountedNettoPrice()}]',
item_quantity: '[{$currOrderArticle-oxorderarticles__oxamount->value}]'
}
);
[{/foreach}]
如果我想将它传递给数据层,我会执行以下操作:
dataLayer.push({
ProductsInfo: products_info
});
这很好用,问题是我实际上想修改这个数组。 在将其传递到数据层之前,我想对其应用以下内容:
products_info|json_encode|escape:'url'
但是当我在推送过程中尝试这样做时,它不起作用:
dataLayer.push({
ProductsInfo: products_info|json_encode|escape:'url'
});
正如我在另一个 post 中告诉您的那样,Smarty 表达式必须用定界符括起来,在您的情况下 [{ 和 }]
另外,当您使用 javascript 中的字符串时,它必须用引号引起来:
dataLayer.push({
ProductsInfo: '[{products_info|json_encode|escape:'url'}]'
});