문제

카트 페이지를 새로 고침하고 내 그랜드 합계가 부정적인 경우 사용자 정의 블록을 표시해야합니다.

$grandTotal = Mage::helper('checkout/cart')->getQuote()->getGrandTotal();
.

이것은 -$2,269.50를 인쇄하지만 아래의 상태를 사용할 때는 작동하지 않습니다.

If ($grandTotal < 0 ){
//do something
}else{
//do something else
}
.

수는 0이 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'];
.

적절한 정수 / 플로트 값을 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top