Wordpress WooCommerce update_status()正在钩子中导致无限循环

Wordpress WooCommerce update_status()正在钩子中导致无限循环,wordpress,woocommerce,infinite-loop,Wordpress,Woocommerce,Infinite Loop,当商店经理单击“已完成”时,我正在尝试更新订单状态 我这样做是因为我想检查“已完成”上是否存在“密钥”。如果不满足条件,则我希望将订单设置回“处理” 问题是:使用钩子“woocommerce\u order\u status\u completed”,我得到了一个无限循环 下面是简化的函数。这引发了问题。你知道我为什么会有失控的循环吗 add_action( 'woocommerce_order_status_completed', 'xcsn_woocommerce_order_status_

当商店经理单击“已完成”时,我正在尝试更新订单状态

我这样做是因为我想检查“已完成”上是否存在“密钥”。如果不满足条件,则我希望将订单设置回“处理”

问题是:使用钩子“woocommerce\u order\u status\u completed”,我得到了一个无限循环

下面是简化的函数。这引发了问题。你知道我为什么会有失控的循环吗

add_action( 'woocommerce_order_status_completed', 'xcsn_woocommerce_order_status_completed' );
function xcsn_woocommerce_order_status_completed ( $order_id ) {

    $order = new WC_Order( $order_id );

    $order->update_status( 'processing', 'Set to Processing because Keys were not available' );

    // Surely the above means the hook 'woocommerce_order_status_completed' should only be triggered once?

}

如果我理解正确,您希望在满足条件的情况下将状态订单更改为处理。 使用当前功能,将订单处理更改为“完成”,并将“完成”更改为“处理”,因为没有任何条件阻止它。 我想你应该试试 如果$Order->Order\U date current\U date===+$delay\U days{ //做事 }