如果qty = 0,我如何在此代码中添加语句。
我从这里得到了这个代码,但它在最后一个之后显示了一个额外的ITEM。
例如
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
虽然数据库和发票只有一个项目
<?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>
答案 0 :(得分:1)
在启动foreach循环之前,需要将$ index变量设置为零(0)。
当你进入foreach循环之前将$ index变量初始化为一(1)时,你有一行将变量递增1的事实会立即将总项目数减少1,因为它会添加(最小值)为1的值(第一次通过时为2)。这就是为什么你的价值在$ index中持有的原因。
答案 1 :(得分:0)
休息怎么样;如果在附加$ cjData之前,qty为0。
答案 2 :(得分: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++;
}