add_filter( 'woocommerce_payment_complete_order_status', 'status_after_order', 10, 2 );
function status_after_order( $order_status, $order_id ){
echo $order_status;
}
当我们通过paypal订购时,管理员可以设置保留库存(Woocommerce>产品>库存)。超时后,订单状态会自动更新为Admin的“已取消”,但是当我们使用上面的过滤器时,它会显示“正在处理”。
在这种情况下,它将为我提供状态“已取消”的任何过滤器/操作。你能解决这个问题吗?
好吧,首先你使用的钩子只是订单完成状态,这就是你没有获得订单状态的原因。
但是我不知道在检测到订单后你想要做什么,但是你有两个解决方案:
第一个解决方案是检测订单状态从何种状态变为已取消
add_action('woocommerce_order_status_cancelled', 'check_status', 30, 2);
function check_status($order_id)
{
wp_die( $order_id ); // this will echo the id or you can do whatever you want here
}
第二个解决方案是使用此钩子检查订单是否已从某个状态更改为另一个状态:
add_action('woocommerce_order_status_changed', 'check_status', 30, 3);
function test12($id, $old_status, $new_status)
{
if ($new_status == 'cancelled') {
//do Somthing
}
}