我的WooCommerce函数有一个小问题,应该按我想要的方式工作,但似乎有错误。我想将成功付款的订单标记为“已完成”,而不是放置在“处理中”,而不成功的订单标记为“已取消”的订单,而不是停留在“付款待处理”。这是我遇到的错误功能:
add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order', 20, 1 );
function wc_auto_complete_paid_order( $order_id ) {
if ( ! $order_id )
return;
// Get an instance of the WC_Product object
$order = wc_get_order( $order_id );
// No updated status for orders delivered with Bank wire, Cash on delivery and Cheque payment methods.
if ( in_array( $order->get_payment_method(), array( 'bacs', 'cod', 'cheque', '' ) ) ) {
return;
// Updated status to "completed" for paid Orders with all others payment methods
} elseif ( $order->has_status('processing') ) {
$order->update_status( 'completed' );
}
}
答案 0 :(得分:0)
您可以尝试以下操作:
add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order' );
function wc_auto_complete_paid_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
if( $order->has_status('processing') ) {
$order->update_status( 'completed' );
} else {
$order->update_status( 'cancelled' );
}
}
该代码未经测试,我只是将其写下来。
让我知道是否有帮助;)
干杯, 弗朗切斯科