WooCommerce update_status()导致钩子无限循环

时间:2014-06-25 15:50:49

标签: wordpress woocommerce infinite-loop

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

我之所以这样做,是因为我想在“已完成”状态下检查某些内容(如果存在“#39;键”)。如果条件不满足,那么我想将订单设置回' Processing'

问题:使用hook' woocommerce_order_status_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?

}

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望在满足条件时将状态顺序更改为处理。 使用当前功能,将订单处理更改为完成并完成处理,因为没有条件阻止它。 我想你应该试试 if ($ Order-> order_date current_date == () + $ delay_days) { // Do stuff }