用于订单更新的Woocommerce挂钩

时间:2016-04-15 12:36:43

标签: wordpress woocommerce hook

大家早上好。 正如标题所示,我正在尝试在订单更新时触发功能。 更具体地说,我想在订单页面(管理员端)中的自定义字段更改然后保存时运行此功能。

我不是要查明订单何时完成或何时更新其状态,而是在更新此字段时。

目前我正在使用woocommerce_process_shop_order_meta挂钩,但它似乎无效。

有什么建议吗? 谢谢!

- 编辑 -

woocommerce_process_shop_order_meta是要使用的righ hook,我在这个钩子触发的函数中出错了所以如果你需要在管理页面中单击更新顺序后运行一个函数,这是正确的方法这样做。

2 个答案:

答案 0 :(得分:3)

如编辑中所写,如果您想在订单更新时触发功能或响应,woocommerce_process_shop_order_meta是正确使用的挂钩。

答案 1 :(得分:1)

我最终使用了 save_post_shop_order 钩子。在以下事件中调用它:

  • 订单创建(客户结账流程和管理)
  • 单个订单更新
  • 批量状态更新
  • 删除订单
  • 取消订单

为了仅观看订单更新,您必须过滤掉非订单类型的帖子并像这样发布作品:

add_action (
    'save_post_shop_order',
    function (int $postId, \WP_Post $post, bool $update): void
    {
        // Ignore order (post) creation
        if ($update !== true) {
            return;
        }

        // Here comes your code...
    },
    10,
    3
);

首先,woocommerce_after_order_object_save 似乎是一个不错的选择,但根据我的经验,它在单个订单更新时运行 3 次(在没有插件的简单工厂安装中)。在前 2 次运行时,订单数据甚至不是最新的(状态是更新前的状态),所以我觉得这个钩子没用。

相关问题