0

qty = 0の場合に停止するステートメントを、このコードに追加するにはどうすればよいですか。

ここからこのコードを取得しましたが、最後のアイテムの後に追加のアイテムが表示されています。

例えば

https://www.emjcd.com/u?CID=1521607&OID=100000393&TYPE=type&ITEM1=401000305964&AMT1=16.9900&QTY1=1&ITEM2=401000305964&AMT2=0.0000&QTY2=0**&TYPE=347774&CURRENCY=USD&METHOD=IMG 

ITEM2 = 401000305964&AMT2 = 0.0000&QTY2=0を追加しました

データベースと請求書には1つのアイテムしかありませんが

        <?php
            $_customerId = Mage::getSingleton('customer/session')->getCustomerId();
            $lastOrderId = Mage::getSingleton('checkout/session')->getLastOrderId();
            $order = Mage::getSingleton('sales/order'); 
            $order->load($lastOrderId);
            $_totalData =$order->getData(); 
            $_sub = $_totalData['subtotal'];//USD ==> global_currency_code,base_currency_code order_currency_code
            // Incase if it is simple do this ==> https://www.emjcd.com/u?AMOUNT= $_sub; 
            //print_r($order); print_r($_totalData);

            $_order   = $this->getOrder();
            $allitems = $order->getAllItems();
            $index    = 1;
            $cjData   = "";//Needed format ==> &ITEM1=3214sku&AMT1=13.49&QTY1=1&ITEM2=6577sku&AMT2=7.99&QTY2=2&
            foreach($allitems as $item)
            {
              $cjData.="&ITEM".$index."=".$item->getSku()."&AMT".$index."=".$item->getPrice()."&QTY".$index."=".$item->getQtyToShip();
              $index++;
            }
        ?>
        <div style="display:none;">
            <img src="https://www.emjcd.com/u?CID=1&OID=<?php echo $this->getOrderId(); ?>&TYPE=3<?php echo $cjData; ?>&CURRENCY=USD&METHOD=IMG" height="1" width="20"> 
        </div>
4

3 に答える 3

1

foreachループを開始する前に、$ index変数をゼロ(0)に設定する必要があります。

foreachループに入る前に$index変数を1に初期化すると、変数を1つインクリメントする行があるという事実により、アイテムの合計数が1だけ減ります。これは、(最小値)を追加するためです。 )1の値(最初は2になります)。これが、オフの場合に値が$indexに保持される理由です。

于 2012-08-21T17:26:36.487 に答える
0

休憩はどうですか。$cjData を追加する直前に数量が 0 の場合。

于 2012-07-09T18:05:50.093 に答える
0

単純な if ステートメントを使用できるため、数量が 0 でない場合にのみ文字列が追加されます。

foreach($allitems as $item)
{
    if ($item->getQtyToShip() != 0) {
        $cjData.="&ITEM".$index."=".$item->getSku()."&AMT".$index."=".$item->getPrice()."&QTY".$index."=".$item->getQtyToShip();
    }
    $index++;
}
于 2012-07-09T18:09:51.073 に答える