首页  >  问答  >  正文

尝试找到 WooCommerce 订单提交的正确挂钩

我开发了一个插件,用于将 WooCommerce 订单连接到 HubSpot。我遇到的问题是,虽然它可以工作,但我现在使用的钩子在技术完成之前将订单信息发送到 HubSpot。因此,这意味着诸如“失败订单”之类的内容将作为“待处理”发送,并且省略优惠券代码。

所以我想知道使用正确的钩子是什么。

我的目标:每次创建并完成 WooCommerce 订单以及更新 WooCommerce 订单时,将数据发送到 HubSpot。

到目前为止我所拥有的:

add_action('save_post_shop_order', 'printout', 10, 3);

function printout($post_ID, $post, $update)
{
    if (!is_admin()){
        return;
    }

    if($update){
        $msg = $post_ID;
        $order = get_woocommerce_order($msg);
        mainplugin($msg, $order);
    }

}


add_action('woocommerce_new_order', 'neworder_delegator', 10, 2);


function neworder_delegator($order_id, $order){
    mainplugin($order_id, $order);
}

所以我想我只是在寻找正确的钩子来得到我想要的东西。

谢谢!

P粉323374878P粉323374878175 天前409

全部回复(1)我来回复

  • P粉216807924

    P粉2168079242024-04-01 17:11:24

    这是你的答案:

    每个 WooCommerce 订单转换都有一个或多个动态挂钩,这些挂钩在状态转换发生时触发。

    它们以“woocommerce_order_status_”开头,操作的其余部分是订单已转换到的新状态,或者格式为“to”的往返状态'

    示例

    您可以将您的函数挂钩

    add_action( 'woocommerce_order_status_completed', 'your_order_completed_function');

    仅在订单转换为已完成时触发您的函数,而在退款、取消、暂停等时触发您的函数,因为这些操作将在其他操作上运行,例如

    woocommerce_order_status_refunded
    woocommerce_order_status_cancelled
    woocommerce_order_status_on-hold
    woocommerce_order_status_failed
    woocommerce_order_status_processing

    编辑以添加官方 WooCommerce 文档的链接:

    https://woocommerce.github.io/code-reference/hooks /hooks.html

    回复
    0
  • 取消回复