php - 用于从管理员创建订单的 WooCommerce 钩子(Hook)

标签 php woocommerce hook-woocommerce

在我的自定义插件(在 WooCommerce 2.6.x 和 3.x 中工作)中,我需要在创建新订单时获取订单 ID。我尝试了不同的钩子(Hook),但它们仅在客户创建订单时起作用,而不是在从管理员创建订单时起作用。

我试过:

  • woocommerce_new_order
  • woocommerce_thankyou
  • woocommerce_checkout_order_processed
  • woocommerce_checkout_update_order_meta

  • 更新

    最后我用了这个:
    add_action('wp_insert_post', function($order_id)
    {
        if(!did_action('woocommerce_checkout_order_processed') 
            && get_post_type($order_id) == 'shop_order'
            && validate_order($order_id))
        {
             order_action($order_id);
        }
    });
    

    其中 validate_order 是:
    function validate_order($order_id)
    {
        $order = new \WC_Order($order_id);
        $user_meta = get_user_meta($order->get_user_id());
        if($user_meta)
            return true;
        return false;
    }
    

    由于 validate_order,当您开始创建订单时,该操作不会执行。我用 !did_action('woocommerce_checkout_order_processed')因为如果订单是由客户创建的,我不希望执行该操作(我对此有一个特定的操作,使用 woocommerce_checkout_order_processed )。

    最佳答案

    woocommerce_new_order创建订单后调用钩子(Hook):

    add_action('woocommerce_new_order', function ($order_id) {
        // ...
    }, 10, 1);
    

    关于php - 用于从管理员创建订单的 WooCommerce 钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44522910/

    相关文章:

    php - 在查询中不使用空格和短表别名有什么好处吗?

    php - Composer 使用较新版本的 php

    php - 根据用户角色向 WooCommerce 付款方式分配百分比费用

    php - 禁用(删除)WooCommerce 4.3.x 中的营销菜单选项

    php - MYSQL 选择查询返回不期望的结果

    php - 如何从不同的IP发送新闻通讯?

    html - 使用 jQuery 更改链接点击上的 Woocommerce 产品数量

    php - 检查 Woocommerce 电子邮件通知中两个产品的顺序是否相同

    php - Wordpress Woocommerce 第二个 sql 数据库连接问题

    php - 将 WooCommerce 产品标题限制为特定长度(并添加 '...' )