質問

私はカートページを更新し、私の壮大な合計が否定的な場合にカスタムブロックを表示する必要があります。

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

これは-$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'];
.

適切な整数/ float値を与えます。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top