从当前用户订单获取订单ID在WooCommerce中
这里是情况。我有一个用作市场的woocommerce网站。我正在销售游戏,因为有些购买者会收到一个蒸汽钥匙。为此,我正在开发一个关键归因系统,因此通过进入一个页面,关键将成为用户的属性。为此,我想检查当前用户(在登录和页面上)所做的所有订单,并检查他购买的游戏。从当前用户订单获取订单ID在WooCommerce中
我在这里找到了一些非常有用的信息:How to get WooCommerce order details
不过,我不设法让所有的订单当前用户。我首先想要做出一个SQL请求,但是我没有在订单和用户之间找到数据库上的链接。
你有没有领先?
UpdatedAdded Compatibility with WooCommerce 3+ (January 2018)
这里,你将需要获得所有客户的订单,并仔细检查每个客户订单的每个项目代码:
## ==> Define HERE the statuses of that orders
$order_statuses = array('wc-on-hold', 'wc-processing', 'wc-completed');
## ==> Define HERE the customer ID
$customer_user_id = get_current_user_id(); // current user ID here for example
// Getting current customer orders
$customer_orders = wc_get_orders(array(
'meta_key' => '_customer_user',
'meta_value' => $customer_user_id,
'post_status' => $order_statuses,
'numberposts' => -1
));
// Loop through each customer WC_Order objects
foreach($customer_orders as $order){
// Order ID (added WooCommerce 3+ compatibility)
$order_id = method_exists($order, 'get_id') ? $order->get_id() : $order->id;
// Iterating through current orders items
foreach($order->get_items() as $item_id => $item){
// The corresponding product ID (Added Compatibility with WC 3+)
$product_id = method_exists($item, 'get_product_id') ? $order->get_product_id() : $item['product_id'];
// Order Item meta data
$item_meta_data = wc_get_order_item_meta($item_id);
// TES: Some output
echo '<p>Line total for '.wc_get_order_item_meta($item_id, '_line_total', true).'</p><br>';
}
}
该代码测试和工程
相关:
谢谢你。然而,我遇到了这样一个问题:foreach($ customer_order-> get_item()为$ item_id => $ item_values) 错误是:致命错误:调用未定义的方法WP_Post :: get_item() –
I通过替换为:foreach(wc_get_order($ order_id) - > get_items()作为$ item_id => $ item_values)来修复该问题。 它似乎在工作,我只需要获取其他信息,如获取产品名称。我应该自己解决。非常感谢! –
我认为这是在iPhone上同步我的帐户时发生的错误。我从昨天开始没有使用过Stackoverflow。我意识到Solved这个词也被删除了。答案再次被标记为接受;) –
总是询问有一些代码和问题,您的代码有问题在这里。 – Vinay
这里是重点。我有要做的代码,并且它工作正常。我只是没有设法拥有那部分。 但我明白了,谢谢 –