更新
我发现有一个小问题。如果用户取消支付,例如在 PayPal,他可能会再次被重定向到结帐。现在让我们期待他再次重复结帐。在这种情况下,钩子 get 被第二次调用,这可能是有问题的。所以我自己实现了一个payment_counter:
add_action('woocommerce_checkout_order_processed', 'order_status_changed_clbk');
函数 order_status_changed_clbk( $order_id ) {
$payment_counter = (int) get_post_meta($order_id, 'payment_counter', true );
if ( empty( $payment_counter ) ) {
update_post_meta( $order_id, 'payment_counter', 1 );
error_log( 'Function works!' ); //Get's called only once
} else {
update_post_meta( $order_id, 'payment_counter', ++ $payment_counter ); //Cool thing for statistics maybe, but not really needed
}
}
也许这个钩子对你有用:
function order_status_changed_clbk( $order_id ){
error_log( 'Function works!' );
}
add_action( 'woocommerce_checkout_order_processed', 'order_status_changed_clbk' );
我在我的插件中使用它。如果订单已处理,它也处于“待处理”状态,所以也许这就是您正在寻找的解决方案。
试试看并检查您的 debug.log 是否有 Function works!。