检索Woocommerce订单中第一个订单项的费用

时间:2018-02-21 15:07:43

标签: php arrays wordpress woocommerce orders

我试图使用以下代码检索Woocommerce 3.X订单中第一个订单项的费用,但只有在订单中有一个产品时才有效,如果有多个产品,它会选择最后一个产品收到成本时,请提出错误建议。

    foreach ($order->get_items() as $item_id => $item_data) {

        // Get an instance of corresponding the WC_Product object
        $product = $item_data->get_product();
        $product_name = $product->get_name(); // Get the product name
        $product_price = $product->get_price();
        $item_quantity = $item_data->get_quantity(); // Get the item quantity
        $item_total = $item_data->get_total(); // Get the item line total

        // Displaying this data (to check)
    }

谢谢!

2 个答案:

答案 0 :(得分:0)

foreach()语句为数组或对象集合中的每个元素重复一组嵌入式语句。

在每次迭代中,它都会访问每个项目,因此在循环结束时,您将获得最后一项的成本。

为了返回第一项的费用,请在foreach()break;结束之前添加。

foreach ($order->get_items() as $item_id => $item_data) {

      .
      .

        break;
    }

这样,foreach()只会重复第一项。

答案 1 :(得分:0)

您可以使用reset() php函数仅保留订单项数组中的第一个$项,避免使用foreach循环:

$order_items = $order->get_items(); // Get the order "line" items
$item = reset($order_items); // Keep the 1st item

// Get an instance of the WC_Product object
$product = $item->get_product();
$product_name = $product->get_name(); // Get the product name
$product_price = $product->get_price(); // Get the product active price
$item_quantity = $item->get_quantity(); // Get the item quantity
$item_total = $item->get_total(); // Get the item line total

// Displaying the cost of the first item
echo $item_total;

经过测试和工作