如何在 WooCommerce 中获取用户的活动订单 ID 和订单状态 [重复]
Posted
技术标签:
【中文标题】如何在 WooCommerce 中获取用户的活动订单 ID 和订单状态 [重复]【英文标题】:How to get the ID of active order by a user and the status of the order in WooCommerce [duplicate] 【发布时间】:2019-01-14 03:10:47 【问题描述】:美好的一天, 我正在尝试获取用户最近的活动订单列表、订单 ID 并获取 woocommerce 中每个活动订单的状态,然后打印出任何订单状态的任何更新。我已经四处寻找可以帮助我实现这一目标的线索或 sn-p,但找不到。
我能够知道如何计算订单数量(使用下面的 sn-p)
$current_user = wp_get_current_user();
$numorders = wc_get_customer_order_count( $current_user->ID );
在各种博客上搜索后,我能够做到这一点;
$order = wc_get_order( $order_id );
$order->get_status()
我真的不知道如何将其结合起来打印出所需的结果(即拥有用户最近任何订单的通知更新列表。
这样做的目标是创建一个类似于迷你订单通知系统的东西,结果看起来像这样;
您的订单通知
=> 您的 ID #24555 订单正在完成 - 15-01-2019 => 您的 ID #24234 订单正在完成 - 13-01-2019 => 您的 ID #24555 订单已发货 - 2019 年 10 月 1 日 => 您的 ID #24234 订单已发货 - 2019 年 10 月 1 日 => 正在处理您的 ID #12324 订单 - 09-01-2019 [最多 10 条通知]
谢谢
【问题讨论】:
我认为您必须获取客户的所有订单,然后检查每个订单的状态。你知道怎么做吗?在这里查看:skyverge.com/blog/get-all-woocommerce-orders-for-a-customer WooCommerce 将订单状态保存在wp_posts.post_status
表中,当您更新状态或订单时,此字段会更新,因此您无法直接构建此系统,但有 2 个解决方案编号 one 是内置的,您可以查看wp_comments
表,其中所有订单备注和状态都记录为评论,因此您可以根据需要过滤掉。 第二您可以构建自己的表格和逻辑,您将根据需要在其中插入订单更改作为列表。
感谢@jasie 的回复,我已经浏览了链接。页面上的示例将消息打印为通知。我将如何打印结果,以便我最多可以有 10 个通知,当订单通知超过 10 个时,旧通知应该消失/被删除/删除
@raunak-gupta 请给我一份可以使用的 sn-p 指南吗?我的 pho 水平还不是很高
Set 'numberposts' => 10 返回最多 10 个订单。
【参考方案1】:
获取客户的所有订单,如下所示:
$customer_orders = get_posts( array(
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(),
'post_type' => wc_get_order_types(),
'post_status' => array_keys( wc_get_order_statuses() ),
) );
浏览所有订单并检查每个订单的状态,如下所示:
$order->get_status( )
根据需要打印出 ID、状态和日期
【讨论】:
以上是关于如何在 WooCommerce 中获取用户的活动订单 ID 和订单状态 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 WooCommerce 中的订单项中获取产品类别 ID
如何在 WooCommerce 中获取用户的活动订单 ID 和订单状态 [重复]
在 Woocommerce 3+ 中使用订单项以编程方式创建订单