WooCommerce の有料注文自動完了の条件コード
WooCommerce では通常、仮想商品の注文が自動完了されますが、支払い方法によっては発生しない場合があります。制限。この問題を処理する条件付きコードを実装する方法は次のとおりです:
フィルター フックの識別:
許可された有料注文ステータスを変更するフィルター フックは woocommerce_payment_complete_order_status。このフックは、チェックアウト時に支払いを必要とするすべての支払い方法で使用されます。
WooCommerce 3 以降 (2019) のソリューション:
add_filter( 'woocommerce_payment_complete_order_status', 'wc_auto_complete_paid_order', 10, 3 ); function wc_auto_complete_paid_order( $status, $order_id, $order ) { return 'completed'; }
WooCommerce 3 以降の改良版 (2018):
add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order', 20, 1 ); function wc_auto_complete_paid_order( $order_id ) { $order = wc_get_order( $order_id ); if ( in_array( $order->get_payment_method(), array( 'bacs', 'cod', 'cheque' ) ) ) { return; } $order->update_status( 'completed' ); }
すべての WooCommerce バージョンの元の回答:
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1 ); function custom_woocommerce_auto_complete_paid_order( $order_id ) { $order = wc_get_order( $order_id ); if ( ( 'bacs' == get_post_meta($order_id, '_payment_method', true) ) || ( 'cod' == get_post_meta($order_id, '_payment_method', true) ) || ( 'cheque' == get_post_meta($order_id, '_payment_method', true) ) ) { return; } elseif( $order->get_status() === 'processing' ) { $order->update_status( 'completed' ); } }
以上が条件付きロジックを使用して有料の WooCommerce 注文を自動的に完了するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。