题
我需要刷新购物车页面并在我的大总数是否定的情况下显示自定义块。
$grandTotal = Mage::helper('checkout/cart')->getQuote()->getGrandTotal();
.
这是prints -$2,269.50
,但是当我使用下面的条件时,它只是不起作用。
If ($grandTotal < 0 ){
//do something
}else{
//do something else
}
.
如何检查数字是否小于0即负字数
感谢
解决方案
您的问题是getgrandtotal返回一个字符串,而不是一个数字。试图看出一个字符串是否较低,则0不起作用。
您可以过滤字符串并删除使用的任何数字
filter_var($grandTotal, FILTER_SANITIZE_NUMBER_INT);
.
在您的情况下将返回 -226950 ,您可以检查它是否较低,如果需要进一步检查,则需要处理它在删除其之间的分隔符的方式磅和便士。
.if(filter_var($price,FILTER_SANITIZE_NUMBER_INT) < 0) {
// Do something
} else {
// Do something else
}
其他提示
如果您想要确切的金额,您也可以使用
$currency_sign = "$";
$actual_amount = str_replace($currency_sign,'',$grandTotal); // $grandTotal is -$2,269.50
if($actual_amount < 0) { //$actual_amount will have the value as -2,269.50
// Do something
} else {
// Do something else
}
.
所有您需要的是使用正确的货币符号。您可以通过以下代码获取当前货币符号:
Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();
.
我建议
而不是使用
$grandTotal = Mage::helper('checkout/cart')->getQuote()->getGrandTotal();
.
请使用
$quote = Mage::helper('checkout/cart')->getQuote();
$quoteData= $quote->getData();
$grandTotal=$quoteData['grand_total'];
.
给出适当的整数/浮点值。