获取商业中的订单项数据值

9njqaruj  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(307)

在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 />";
        }

但是,此代码的问题是,在and子句中添加“\u qty”列会导致结果显示为此处所示的两倍(对于大多数芬兰网站也很抱歉):

我想能够打印的数量和价格作为单独的元素/变量,并能够与价格相加,以获得所有产品的总价格。
如果代码或问题令人困惑,请问我任何问题!
更新
因此,迪普拉建议我使用分组,这有助于我获得正确数量的结果。但是,我还是不知道如何把数量和价格分开打印/小狗

bkhjykvo

bkhjykvo1#

而不是使用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>';
}

相关:
如何获取订单详细信息
在woocommerce 3中获取订单项目和wc\订单项目\产品

相关问题