Prestashop 1.7中的Smarty操作

时间:2019-03-21 08:01:02

标签: prestashop smarty

我正在Prestashop 1.7中尝试在product-discounts.tpl中的两个智能变量之间进行数学运算,但是结果是错误的...

{$product.regular_price}

[输出:12,85€]

{$quantity_discount.discount}

[产出:9.8%]

{$product.regular_price*$quantity_discount.discount}

[输出:117,6]应该是:12.85 * 9.8 = 125.93

有什么主意吗?

我尝试过:

{$product.regular_price|floatval}

[输出:12]应为:12.85

预先感谢

Prestashop 1.7

2 个答案:

答案 0 :(得分:0)

实际上,这是由于价格 12,85€而引起的,因此,如果将逗号替换为点号,则会得到正确的值 125.93 < / p>

我认为最简单的解决方案是在tpl文件中分配一个新变量,并用点代替regular_price 12,85 中的逗号。

顺便说一句,您也可以用控制器中的点替换逗号,但是如果您想在模板文件中执行数学运算,可以这样做:

首先,将{$product.regular_price}分配给regularPrice变量,并用点替换逗号,如下所示:

{assign var=regularPrice value=$product.regular_price|replace:',':'.'}

我希望$quantity_discount.discount始终包含点,但是如果还有逗号而不是点,那么

{assign var=quantityDiscount value=$quantity_discount.discount|replace:',':'.'}

最后,您要做的就是将变量regularPricequantityDiscount相互复数

{assign var=total_price value=$regularPrice * $quantityDiscount}

然后在tpl文件中显示total_price,如下所示:

{$total_price}

答案 1 :(得分:0)

您可以使用以下内容 {$ product.regular_price_amount * $ quantity_discount.discount}

regular_price用于显示价格。 如果要进行一些数学计算,则可以使用产品的regular_price_amount值。