Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengautomasikan Penyiapan Pesanan WooCommerce untuk Kaedah Pembayaran Tertentu?

Bagaimanakah Saya Boleh Mengautomasikan Penyiapan Pesanan WooCommerce untuk Kaedah Pembayaran Tertentu?

DDD
Lepaskan: 2024-12-11 06:32:09
asal
658 orang telah melayarinya

How Can I Automate WooCommerce Order Completion for Specific Payment Methods?

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';
}
Salin selepas log masuk

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' );
    }
}
Salin selepas log masuk

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' );
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan