小编Fan*_*nky的帖子

woocommerce_payment_complete 未在标记订单完成时触发

我需要在订单完成时执行操作。

我试过这个:

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_changedwoocommerce_order_status_completed工作,它只将我的测试“错误”输出到 debug.log,而不是出于某种原因输出到 error_log。在woocommerce_payment_complete我以前使用的并不适用于像银行转账,这就是为什么没有奏效的方法。感谢@helgatheviking 提供快速正确的答案

php wordpress orders woocommerce hook-woocommerce

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

hook-woocommerce ×1

orders ×1

php ×1

woocommerce ×1

wordpress ×1