首页 > 解决方案 > 在 Woocommerce 中获取订单商品数据值

问题描述

在 Woocommerce 中,目前我有一个表格,客户可以在其中输入订单号、他们的姓名和邮政编号。该代码通过此代码,如果一切正确,则向客户显示他订购的物品,这导致了我的问题:

在 WooCommerce 表中,价格和数量都在同一列中,我似乎无法单独获取值。

我尝试了不同的方法来进行当前的查询,但这是我最接近成功的最新方法:

$sql2 = "SELECT *
FROM wp_woocommerce_order_items
LEFT JOIN wp_woocommerce_order_itemmeta ON wp_woocommerce_order_items.order_item_id = wp_woocommerce_order_itemmeta.order_item_id
WHERE wp_woocommerce_order_items.order_id = $ordernumber
AND (meta_key IN ('_line_total', '_qty'))";

此外,我正在使用 foreach 循环打印结果:(也很抱歉图片和代码中的芬兰位)

 foreach ($res2 as $row) {
   echo "<input type='checkbox' name='productinfo[]'><label> Tuotenimi: " . $row['order_item_name'] . "<br /> Kappalehinta: " . $row['meta_value'] ." €"
          . "<br /><br />";
        }

但是,这段代码的问题是,将“_qty”列添加到 AND 子句会导致结果与此处看到的一样(也很抱歉大部分是芬兰网站):

打印结果图片

我希望能够将数量和价格打印为单个元素/变量,并能够添加价格,以获得所有产品的总价格。

如果代码或问题令人困惑,请问我任何事情!

更新

因此,Dipmala 建议我使用 group by 这有助于我获得正确数量的结果。但是,我仍然不知道如何将数量与价格分开打印。/傀儡

标签: phpmysqlwordpresswoocommerceorders

解决方案


而是使用 SQL 查询试试这个$order_id帖子 ID(或订单号)在哪里)

$order = wc_get_order( $order_id );

echo '<p>'. __('Order total: ') . $order->get_total() . '</p>';

foreach ( $order->get_items() as $item ){
    echo '<p>';
    echo __('Product name: ') . $item->get_name() . '<br>';
    echo __('Quantity: ') . $item->get_quantity() . '<br>';
    echo __('Line total: ') . wc_price($item->get_total()) . '</p>';
}

有关的:


推荐阅读