Cara Melaksanakan Autolengkap Bersyarat untuk Pesanan WooCommerce Berbayar
Dalam WooCommerce, produk maya sering menghadapi masalah dengan penyiapan pesanan automatik. Panduan komprehensif ini menyediakan berbilang penyelesaian untuk menangani masalah ini, termasuk coretan kod tersuai dan pilihan pemalam. Untuk pendekatan yang lebih terperinci, pertimbangkan untuk melaksanakan kod bersyarat berdasarkan kaedah pembayaran WooCommerce.
Kod Bersyarat untuk Autolengkapkan Pesanan Berbayar
Untuk menggunakan ciri autolengkap berdasarkan kaedah pembayaran secara terpilih , gunakan cangkuk penapis woocommerce_payment_complete_order_status, yang dicetuskan apabila pembayaran diperlukan dalam daftar keluar. Berikut ialah versi dipertingkat yang serasi dengan WooCommerce 3 dan ke atas:
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'; }
Kod ini menukar status pesanan berbayar yang dibenarkan kepada "selesai" untuk semua gerbang pembayaran kecuali "Wayar bank" (bacs), "Tunai semasa penghantaran" (cod), dan "Cek" (cek).
Tambahan Pertimbangan
Alternatif
Versi dipertingkatkan (2018)
add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order', 20, 1 ); function wc_auto_complete_paid_order( $order_id ) { // No updates for Bank wire, Cash on delivery, and Cheque if ( in_array( $order->get_payment_method(), array( 'bacs', 'cod', 'cheque', '' ) ) ) { return; } // Autocomplete all others else { $order->update_status( 'completed' ); } }
Jawapan asal ( semua WooCommerce versions)
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1 ); function custom_woocommerce_auto_complete_paid_order( $order_id ) { // No updates for Bank wire, Cash on delivery, and Cheque 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; } // Autocomplete all others else { $order->update_status( 'completed' ); } }
Nota: Pastikan anda meletakkan coretan kod dalam fail functions.php tema anak anda.
Atas ialah kandungan terperinci Bagaimana untuk Melengkapkan Pesanan WooCommerce Berbayar Secara Automatik Berdasarkan Kaedah Pembayaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!