我需要在订单完成时执行操作。
我试过这个:
function mysite_woocommerce_payment_complete( $order_id ) {
error_log("callback fired");
}
add_action( 'woocommerce_payment_complete', 'mysite_woocommerce_payment_complete' );
Run Code Online (Sandbox Code Playgroud)
……钩子没有开火。我也试过woocommerce_order_status_changed,它在我下订单时执行操作,但当我将订单标记为已完成时它什么也不做。
但是当我将订单标记为已完成时,我会收到有关完成订单的电子邮件。
谢谢!
编辑:
我也试过woocommerce_order_status_changed,这样:
function mysite_woocommerce_payment_complete($order_id, $old_status, $new_status ) {
error_log("$old_status / $new_status \n");
}
add_action( 'woocommerce_order_status_changed', 'mysite_woocommerce_payment_complete', 99, 3 );
Run Code Online (Sandbox Code Playgroud)
但它在购买时触发(我选择了银行转帐)并显示:“待处理/暂停”,但不是真的 - 请参阅 edi2不会触发从“暂停”到“已完成”的手动后端更改。既不是通过复选标记也不是在单订单界面。
Edit2
woocommerce_order_status_changed并woocommerce_order_status_completed工作,它只将我的测试“错误”输出到 debug.log,而不是出于某种原因输出到 error_log。在woocommerce_payment_complete我以前使用的并不适用于像银行转账,这就是为什么没有奏效的方法。感谢@helgatheviking 提供快速正确的答案