在Woocommerce中获取订单商品数据值

时间:2018-09-19 10:51:39

标签: php mysql wordpress woocommerce orders

在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子句中添加“ _qty”列会使结果显示为此处所示结果的两倍(对于大多数芬兰网站也感到抱歉):

Picture of the print results

我希望能够将数量和价格打印为单独的元素/变量,并能够对价格进行加法运算,以获取所有产品的总价。

如果代码或问题令人困惑,请问我什么!

更新

因此Dipmala建议我使用分组方法,该方法可以帮助我获得正确的结果。但是,我仍然不知道如何将数量和价格分开打印。 /小狗

1 个答案:

答案 0 :(得分:1)

代替使用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>';
}

相关: