Cara Menyetujui Pesanan Secara Otomatis di WooCommerce

Diterbitkan: 2020-09-25

Persetujuan Otomatis Pesanan WooCommerce Jika Anda menjalankan toko eCommerce, maka Anda menyadari bahwa situs tersebut memerlukan pelacakan dan pengelolaan pesanan. Namun, ini bisa menjadi pekerjaan berat bagi administrator, terutama jika toko online Anda memiliki lalu lintas tinggi, yang menghasilkan banyak pesanan dalam sehari.

Selain itu, Anda tahu bahwa pesanan dibuat segera setelah proses Checkout selesai. Sebuah pesanan diberi status sesuai dengan tempat pesanan tersebut berada dalam rantai pembayaran-ke-pengiriman.

Selain itu, status ditetapkan atau diubah oleh WooCommerce, Gateway Pembayaran, dan administrator toko tergantung di mana pesanan dimulai.

Setelah pembayaran pesanan selesai jika pengguna belum memilih opsi Cash-on-Delivery. Saat pesanan selesai, statusnya diatur ke "Selesai" sampai pemilik toko secara manual mengubahnya menjadi "Selesai". Ini akan menjadi tugas yang menakutkan bagi pemilik toko atau administrator.

Persetujuan Otomatis Pesanan WooCommerce

Dalam tutorial singkat ini, saya akan berbagi dengan Anda kode PHP khusus yang akan membantu Anda untuk secara otomatis mengatur status pesanan sebagai Selesai setiap kali pembayaran berhasil dilakukan. Ini menyiratkan bahwa meskipun pengguna memilih opsi Cash-on-Delivery, status pesanan akan secara otomatis berubah menjadi Selesai.

Selain itu, saya juga akan berbagi dengan Anda solusi yang secara otomatis akan mengatur status pesanan WooCommerce sebagai Selesai untuk produk virtual. Produk-produk ini tidak berwujud atau tidak dapat diunduh.

Ini karena langganan keanggotaan mungkin tidak memiliki bentuk yang nyata, melainkan tanggal kedaluwarsa. Jika Anda berurusan dengan produk yang dapat diunduh, opsi Cash-on-Delivery tidak boleh disertakan, tetapi sebaliknya, hanya kondisi yang harus ditambahkan untuk memeriksa apakah semua produk dalam pesanan adalah virtual.

Sekarang setelah Anda mengetahui bagaimana status pesanan diatur, berikut adalah panduan terperinci tentang cara:

  • Secara otomatis mengatur status pesanan WooCommerce sebagai Selesai berdasarkan metode pembayaran.
  • Secara otomatis mengatur status pesanan WooCommerce sebagai Selesai untuk produk virtual.

a) Langkah-langkah untuk Secara Otomatis Mengatur Status Pesanan WooCommerce sebagai Selesai Berdasarkan Metode Pembayaran

Berikut adalah langkah-langkah sederhana yang perlu Anda ikuti:

  1. Masuk ke situs WordPress Anda dan akses Dasbor sebagai pengguna admin.
  2. Dari menu Dashboard, klik pada Appearance Menu > Theme Editor Menu . Saat halaman Theme Editor terbuka, cari file theme functions dimana kita akan menambahkan fungsi yang secara otomatis akan mengatur status pesanan woocommerce sebagai selesai berdasarkan metode pembayaran.
  3. Tambahkan kode berikut ke file php :
 /**

Cuplikan untuk secara otomatis mengatur status pesanan woocommerce sebagai selesai berdasarkan metode pembayaran

*/

add_action('woocommerce_order_status_changed', 'njengah_auto_complete_by_payment_method');

fungsi njengah_auto_complete_by_payment_method($order_id)

{

jika ( ! $pesan_id ) {

kembali;

}

global $produk;

$pesanan = wc_get_order( $pesan_id );

if ($pesan->data['status'] == 'memproses') {

$payment_method=$order->get_payment_method();

if ($payment_method!="bacs")

{

$order->update_status( 'selesai' );

}

}

}
  1. Untuk melihat hasilnya, buka Dasbor WordPress dan klik WooCommerce > Pesanan . Anda akan melihat bahwa pesanan telah diatur ke Selesai seperti yang ditunjukkan di bawah ini: pesanan yang disetujui

Cara Kerja Kode

Dalam kode di atas, saya telah menggunakan kait woocommerce_order_status_changed untuk memanggil fungsi ketika status pesanan diubah. Ini memeriksa apakah pesanan memiliki status Pemrosesan dan mengubahnya menjadi Selesai.

Secara default, WooCommerce memiliki empat metode pembayaran default, yaitu Transfer Bank Langsung (bacs), Pembayaran cek (cek), Cash on Delivery (cod), dan PayPal (PayPal). Namun, Anda perlu menentukan metode pembayaran yang Anda tetapkan kondisinya.

b) Langkah-langkah untuk Secara Otomatis Mengatur Status Pesanan WooCommerce sebagai Selesai untuk Produk Virtual

produk yang dapat diunduh: Persetujuan Otomatis Pesanan WooCommerce Berikut adalah langkah-langkah yang perlu Anda ikuti:

  1. Masuk ke situs WordPress Anda dan akses Dasbor sebagai pengguna admin.
  2. Dari menu Dashboard, klik pada Appearance Menu > Theme Editor Menu . Ketika halaman Theme Editor terbuka, cari file theme functions dimana kita akan menambahkan fungsi yang secara otomatis akan mengatur status pesanan woocommerce sebagai selesai untuk produk virtual.
  3. Tambahkan kode berikut ke file php :
 /**

Cuplikan untuk secara otomatis mengatur status pesanan woocommerce sebagai selesai untuk produk virtual

*/

add_action('woocommerce_order_status_changed', 'njengah_auto_complete_virtual');

fungsi njengah_auto_complete_virtual($order_id)

{

jika ( ! $pesan_id ) {

kembali;

}

global $produk;

$pesanan = wc_get_order( $pesan_id );

if ($pesan->data['status'] == 'memproses') {

$virtual_order = nol;

if ( count( $order->get_items() ) > 0 ) {

foreach( $order->get_items() sebagai $item ) {

if ( 'line_item' == $item['type'] ) {

$_produk = $pesanan->get_produk_dari_item( $item );

if ( ! $_product->is_virtual() ) {

// setelah kita menemukan satu produk non-virtual, keluar dari loop

$virtual_order = salah;

merusak;

}

kalau tidak {

$virtual_order = benar;

}

}

}

}




// jika semua adalah produk virtual, tandai sebagai selesai

jika ( $virtual_order ) {

$order->update_status( 'selesai' );

}

}

}

  1. Hasilnya akan sama seperti contoh pertama, karena pesanan akan secara otomatis ditetapkan sebagai Selesai .

Cara Kerja Kode

Pada kode di atas, saya telah menggunakan hook yang sama untuk memanggil fungsi njengah_auto_complete_virtual. Setelah diperiksa apakah dalam status Pemrosesan, maka kode melewati setiap item untuk melihat apakah ada produk virtual.

Line_item mengacu pada produk, dan hanya produk yang perlu diambil satu per satu untuk memeriksa apakah produk tersebut virtual. Jika tidak ada produk virtual, status pesanan tidak akan ditandai sebagai Selesai.

Kesimpulan

Dalam tutorial singkat ini, saya telah membagikan bagaimana Anda dapat secara otomatis mengatur status pesanan WooCommerce sebagai Selesai. Saya telah melakukannya berdasarkan metode pembayaran dan untuk produk virtual.

Namun, bergantung pada persyaratan yang Anda perlukan untuk toko Anda, dengan menggunakan cuplikan kode pertama, Anda dapat menambahkan lebih banyak ketentuan untuk menandai status pesanan sebagai Selesai. Misalnya, jika pembayaran telah dilakukan, Anda dapat menandai Status Pesanan sebagai Selesai bahkan untuk produk non-virtual dengan menambahkan tanda centang pada metode pembayaran setelah memeriksa apakah itu produk virtual.

Namun, melalui cuplikan kode ini, status pesanan akan ditetapkan sebagai Selesai hanya jika semua produk dalam pesanan adalah produk virtual. Saya harap posting ini memberikan solusi untuk secara otomatis menyetujui pesanan di WooCommerce.

Artikel Serupa