Cara Melengkapkan Pesanan Produk Maya Berbayar dalam WooCommerce
Apabila pesanan produk maya ditandakan sebagai berbayar, ia biasanya akan ditetapkan secara automatik kepada status "selesai". Walau bagaimanapun, WooCommerce tidak selalu melakukan ini. Untuk menyelesaikan isu ini, anda boleh melaksanakan kod tersuai berdasarkan kaedah pembayaran WooCommerce yang digunakan.
Penyelesaian
Coretan kod berikut menapis status pesanan berbayar yang dibenarkan, melengkapkan dengan berkesan pesanan produk maya yang dibayar melalui pembayaran yang tidak dikecualikan kaedah.
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'; }
Penjelasan
Penyelesaian Alternatif
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' ); }
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' ); } }
Nota: Letakkan coretan kod dalam fail functions.php tema anak aktif anda atau tema.
Atas ialah kandungan terperinci Bagaimana untuk Mengautomasikan Penyiapan Pesanan Produk Maya Berbayar dalam WooCommerce?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!