Mengatasi Pengehadan Autolengkap Pesanan WooCommerce
Biasanya, WooCommerce mengautomasikan penyiapan pesanan untuk produk maya. Walau bagaimanapun, untuk kaedah pembayaran seperti "Wayar bank", "Tunai semasa penghantaran" dan "Cek", fungsi ini mungkin tidak tersedia. Untuk menangani isu ini dan menggunakan autolengkap pesanan secara bersyarat berdasarkan kaedah pembayaran, penyelesaian berikut boleh dilaksanakan:
Menggunakan Cangkuk Penapis woocommerce_payment_complete_order_status
Cangkuk penapis ini dicetuskan apabila pembayaran diperlukan semasa daftar keluar dan digunakan oleh semua kaedah pembayaran. Dengan mengubah suai status pesanan berbayar yang dibenarkan, anda boleh mencapai autolengkap bersyarat:
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'; }
Menggunakan woocommerce_thankyou Action Hook
Untuk WooCommerce versi 3 dan ke atas, kod berikut boleh digunakan:
add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order', 20, 1 ); function wc_auto_complete_paid_order( $order_id ) { if ( ! $order_id ) return; $order = wc_get_order( $order_id ); if ( in_array( $order->get_payment_method(), array( 'bacs', 'cod', 'cheque', '' ) ) ) { return; } else { $order->update_status( 'completed' ); } }
Original Penyelesaian
Untuk semua versi WooCommerce, kod berikut boleh digunakan:
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1 ); function custom_woocommerce_auto_complete_paid_order( $order_id ) { if ( ! $order_id ) return; $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' ); } }
Penyelesaian ini menyediakan autolengkap pesanan bersyarat untuk pesanan berbayar berdasarkan kaedah pembayaran yang ditentukan, memastikan cekap dan pemprosesan pesanan tepat di kedai WooCommerce yang menerima pelbagai pilihan pembayaran.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengautomasikan Penyiapan Pesanan WooCommerce untuk Kaedah Pembayaran Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!