没有调用Woocommerce订单删除钩子回调

use*_*er1 1 php wordpress hook wordpress-plugin woocommerce

我正在尝试将一个函数挂钩到订单删除(当从管理页面点击永久删除时),但由于某种原因,该函数未被调用.我的代码看起来像

add_action('woocommerce_before_delete_order_item', function($id) {
    $order = new WC_Order($id);
    //do some stuff with order meta data
}, 10, 1);
Run Code Online (Sandbox Code Playgroud)

我试图在函数内抛出异常,但没有发生错误.有人可以帮忙吗?

And*_*ndy 7

woocommerce_before_delete_order_item每次从订单中删除项目时都会运行该操作,而不是每次删除订单时都会运行.你需要使用before_delete_post钩子:

add_action('before_delete_post', function($id) {
    global $post_type;

    if($post_type !== 'shop_order') {
        return;
    }

    $order = new WC_Order($id);
    //do some stuff with order meta data
}, 10, 1);
Run Code Online (Sandbox Code Playgroud)

根据您想要做的事情,您可能希望通过将优先级参数更改为10更小的值来挂接早期阶段的操作.