在Woocomerce中,目前我有一个表单,客户输入订单号、姓名和邮政编码。代码会遍历此代码,如果一切正常,则会向客户显示他订购的项目,这会导致我的问题:
在woomerce表中,价格和数量都在同一列中,我似乎无法单独获取值。
我尝试了不同的方法来完成当前的查询,但这是我最近一次最接近成功的查询:

$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子句中会导致结果显示为此处所示的两倍(对大多数芬兰网站也很抱歉):
php - 在Woocommerce中获取订单商品数据值-LMLPHP
我希望能够打印数量和价格作为单独的元素/变量,并能够与价格相加,以获得所有产品的总价。
如果密码或问题让人困惑,请问我任何问题!
更新
因此,迪普马拉建议我使用group来帮助我获得正确的结果。但是,我还是不知道如何把数量和价格分开打印。
/木偶

最佳答案

使用SQL查询时,请尝试以下操作(其中$order_id是post 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>';
}

相关:
How to get WooCommerce order details
Get Order items and WC_Order_Item_Product in Woocommerce 3

10-01 14:05