WooCommerce触发订单状态完成时的功能

时间:2016-08-01 18:19:53

标签: php wordpress woocommerce

我正在尝试在订单完成时触发功能。我正在使用此代码:

add_action('woocommerce_order_status_completed', array($this, 
  'payment_complete' 
), 1);

然后这个功能:

public function payment_complete($order_id) { 
  $this->generate_order_file($order_id); 
}

此功能用于生成订单文件,但根本不会被调用。我之前尝试过将其添加到错误日志中,

我正在使用WooCommerce订单状态控制插件,订单会自动更改为付款后完成。但由于某种原因,woocommerce_order_status_completed操作没有触发。

2 个答案:

答案 0 :(得分:2)

<强>功能

function payment_complete( $order_id, $old_status, $new_status ){
        if( $new_status == "completed" ) {
            $this->generate_order_file($order_id); 
        }
}

<强> HOOK

add_action( 'woocommerce_order_status_changed', array( $this, 'payment_complete'), 99, 3 );

注意

确保执行挂钩。是的,这将有效。

祝你好运。

答案 1 :(得分:1)

最好的方法是使用此操作:

add_action( 'woocommerce_order_status_completed', 'your_function', 10, 1);
function your_function($order_id) {
}