未调用 Woocommerce 订单删除挂钩回调
Woocommerce order delete hook callback is not being called
我正在尝试将一个函数挂接到订单删除(当从管理页面单击永久删除时),但由于某种原因,该函数未被调用。我的代码看起来像
add_action('woocommerce_before_delete_order_item', function($id) {
$order = new WC_Order($id);
//do some stuff with order meta data
}, 10, 1);
我尝试在函数内部抛出异常但没有发生错误。有人可以帮忙吗?
每次从订单中删除商品时都会运行 woocommerce_before_delete_order_item
操作,而不是每次删除订单时都会运行。您需要使用 before_delete_post
挂钩:
add_action('before_delete_post', function($id) {
$post_type = get_post_type($id);
if ($post_type !== 'shop_order') {
return;
}
$order = new WC_Order($id);
//do some stuff with order meta data
}, 10, 1);
根据您想要执行的操作,您可能希望通过将优先级参数从 10
更改为更小的值来在较早阶段挂钩该操作。
function restrict_post_deletion($post_ID){
$type = get_post_type($post_ID);
if($type == 'shop_order'){
$order = new WC_Order($post_ID);
//do some stuff with order data
}
}
add_action('wp_trash_post', 'restrict_post_deletion', 10, 1);
add_action('before_delete_post', 'restrict_post_deletion', 10, 1);
试试这个代码片段
如果您打算在管理仪表板的订单详细信息页面中使用移动到 thrash,您可以使用 wp_trash_post
。 before_delete_post
对我不起作用。
function onOrderDelete($orderId){
$post_type = get_post_type($orderId);
if($post_type !== 'shop_order') {
return;
}
$order = wc_get_order($orderId);
// do whatever with $order
}
add_action('wp_trash_post', 'onOrderDelete', 10, 1);
我正在尝试将一个函数挂接到订单删除(当从管理页面单击永久删除时),但由于某种原因,该函数未被调用。我的代码看起来像
add_action('woocommerce_before_delete_order_item', function($id) {
$order = new WC_Order($id);
//do some stuff with order meta data
}, 10, 1);
我尝试在函数内部抛出异常但没有发生错误。有人可以帮忙吗?
每次从订单中删除商品时都会运行 woocommerce_before_delete_order_item
操作,而不是每次删除订单时都会运行。您需要使用 before_delete_post
挂钩:
add_action('before_delete_post', function($id) {
$post_type = get_post_type($id);
if ($post_type !== 'shop_order') {
return;
}
$order = new WC_Order($id);
//do some stuff with order meta data
}, 10, 1);
根据您想要执行的操作,您可能希望通过将优先级参数从 10
更改为更小的值来在较早阶段挂钩该操作。
function restrict_post_deletion($post_ID){
$type = get_post_type($post_ID);
if($type == 'shop_order'){
$order = new WC_Order($post_ID);
//do some stuff with order data
}
}
add_action('wp_trash_post', 'restrict_post_deletion', 10, 1);
add_action('before_delete_post', 'restrict_post_deletion', 10, 1);
试试这个代码片段
如果您打算在管理仪表板的订单详细信息页面中使用移动到 thrash,您可以使用 wp_trash_post
。 before_delete_post
对我不起作用。
function onOrderDelete($orderId){
$post_type = get_post_type($orderId);
if($post_type !== 'shop_order') {
return;
}
$order = wc_get_order($orderId);
// do whatever with $order
}
add_action('wp_trash_post', 'onOrderDelete', 10, 1);