如何在 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 购物车订单项数量价格计算

在 Woocommerce 3+ 中使用订单项以编程方式创建订单

在 WooCommerce 电子邮件通知中将发件人名称更改为订单元数据中的值

部分退款如何存储在 WooCommerce 数据库中?