我在Woocommerce产品详细信息和订单详细信息关系方面遇到麻烦。我无法在Woocommerce主题的“查看订单”页面上找到相关订单ID的产品ID。我只想在“查看订单”页面上获取产品内容和永久链接等。
我尝试在
wp_postmeta
中进行搜索,但没有运气。#1 楼
WooCommerce 3.0+
您可以通过以下方式获取订单的订单项:
$order = wc_get_order( $order_id );
$items = $order->get_items();
,然后遍历所有项目,您可以获得所有相关数据:
foreach ( $items as $item ) {
$product_name = $item->get_name();
$product_id = $item->get_product_id();
$product_variation_id = $item->get_variation_id();
}
一个很好的技巧是检查管理员订单页面如何获取数据,您将在其中找到许多答案!
Pre-WooCommerce 3.0
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_name = $item['name'];
$product_id = $item['product_id'];
$product_variation_id = $item['variation_id'];
}
#2 楼
我努力工作并取得了一些成就。我想与其他开发者分享。这不是首选的方法,但出于知识,我会发布我的答案。global $wpdb;
$result = $wpdb->get_results('select t1.order_item_id, t2.* FROM
wp_woocommerce_order_items as t1 JOIN wp_woocommerce_order_itemmeta as t2 ON t1.order_item_id = t2.order_item_id
where t1.order_id='.$order->ID);
echo '<pre>';
print_r($result);
echo '</pre>';
希望会帮助某人。
另外:
更好地使用wordpress表前缀来避免在多个网站或迁移等方面出现问题。
global $wpdb;
$table_name = $wpdb->prefix . 'table_name';
评论
@ErenorPaz谢谢,我在回答中添加了内容,以回复您的评论:)
– Arslaan ejaz
16-10-25在8:33
谢谢您即使在旧线程上也能快速响应!我将删除以前的评论,因为它已经过时了:)
– Erenor Paz
16-10-25在10:40
评论
除非我缺少任何东西,否则在最新版本的WooCommerce中似乎无法使用...
–rnevius
2015年11月9日17:34
对于我来说,它仍然可以在WooCommerce 2.4.8中使用,但是您需要定义$ order_id变量(有时它位于$ order-> id中,具体取决于您的上下文)。
– Ewout
2015年11月10日14:25
@mevius我为3+添加了带有调度功能的编辑,用于检查多个产品
–加勒特·克拉伯恩(Garet Claborn)
17-10-20在17:40
请参阅调度程序的编辑历史记录,如果没有它就不好了,因为它会毫无意义地吞噬您的服务器
–加勒特·克拉伯恩(Garet Claborn)
17年11月22日在19:46
@GaretClaborn完全取决于您对这些数据的处理方式。 “按原样”,此示例代码片段不会以任何方式浪费内存。
– Ewout
17年11月27日在13:44