For the bank transfer (bacs) payment method,由于店长手动通过改变订单状态确认订单已支付,所以需要使用特殊的woocommerce_order_status_changed
挂钩.
成功订单的状态可以从
- 等待处理,
- 等待完成,或
- 等待处理完成.
However, the action should only be fired once for each successful order.
我试图通过判断订单&& ! $order->get_date_paid('edit')
的付款日期来实现这一点,但这似乎不是一个可行的解决方案,因为总是收到付款日期.
add_action( 'woocommerce_order_status_changed', 'bacs_payment_complete', 10, 4 );
function bacs_payment_complete( $order_id, $old_status, $new_status, $order ) {
// 1. For Bank wire and cheque payments
if( in_array( $order->get_payment_method(), array('bacs')
&& in_array( $new_status, array('processing', 'completed')
&& ! $order->get_date_paid('edit') ) {
// Do something
}
}