【问题标题】:Tracking Pixel - PHP Issue跟踪像素 - PHP 问题
【发布时间】:2012-07-09 18:02:35
【问题描述】:

如果 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

虽然数据库和发票只有一项

        <?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>

【问题讨论】:

    标签: php mysql magento commission-junction


    【解决方案1】:

    在开始 foreach 循环之前,您需要将 $index 变量设置为零 (0)。

    当您在进入 foreach 循环之前将 $index 变量初始化为一 (1) 时,您有一行将变量递增 1 的事实会立即将总项目计数减 1,因为它会添加(最小值)1 到值(第一次通过时为 2)。这就是为什么如果关闭,您的价值会保留在 $index 中。

    【讨论】:

      【解决方案2】:

      休息呢?如果 qty 在您追加 $cjData 之前为 0。

      【讨论】:

        【解决方案3】:

        你可以使用一个简单的 if 语句,所以字符串只有在数量不为 0 时才会附加。

        foreach($allitems as $item)
        {
            if ($item->getQtyToShip() != 0) {
                $cjData.="&ITEM".$index."=".$item->getSku()."&AMT".$index."=".$item->getPrice()."&QTY".$index."=".$item->getQtyToShip();
            }
            $index++;
        }
        

        【讨论】:

        • 添加if语句后出现黑页
        猜你喜欢
        • 2011-02-01
        • 2016-11-08
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 2011-10-11
        • 1970-01-01
        相关资源
        最近更新 更多