在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子句中会导致结果显示为此处所示的两倍(对大多数芬兰网站也很抱歉):
我希望能够打印数量和价格作为单独的元素/变量,并能够与价格相加,以获得所有产品的总价。
如果密码或问题让人困惑,请问我任何问题!
更新
因此,迪普马拉建议我使用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