Cara mengubah status pesanan secara otomatis di WooCommerce
Diterbitkan: 2021-07-31Apakah Anda ingin memperbarui status pesanan di toko Anda? Anda telah datang ke tempat yang tepat. Dalam panduan ini, kami akan menunjukkan cara mengubah status pesanan secara otomatis di WooCommerce menggunakan beberapa skrip PHP. Jangan khawatir jika Anda tidak memiliki keterampilan pengkodean tingkat lanjut, kami akan menjelaskan setiap skrip secara rinci.
WooCommerce menawarkan banyak fitur kepada pengembang, jadi jika Anda memiliki keterampilan pengkodean, Anda dapat membuat semua jenis penyesuaian dan meningkatkan toko eCommerce Anda. Dalam tutorial berikut, Anda akan mempelajari semua yang perlu Anda ketahui tentang status pesanan. Ini adalah fitur WooCommerce yang bisa sangat berguna saat mengelola pesanan dalam jumlah besar. Ini akan sangat berguna pada daftar pesanan backend, di mana manajer toko dapat dengan mudah mencari dan mengambil tindakan tertentu pada pesanan dengan status tertentu.
Tanpa basa-basi lagi, mari kita langsung ke dalamnya.
Bagaimana status pesanan di WooCommerce?
Status pesanan hanyalah tag yang dimiliki pesanan yang mewakili status pesanan saat ini . Ini mirip dengan taksonomi yang dilampirkan pada pos yang menjelaskan informasi spesifik tentang status pos tersebut saat ini. Misalnya, ketika pelanggan menekan tombol "Pesan", mereka memesan di toko kami. Secara default, status pesanan diatur ke "Pembayaran Tertunda".
Jika toko terintegrasi dengan gateway pembayaran seperti PayPal atau Stripe, status default sebelumnya (tertunda) akan divalidasi dan akan berubah menjadi " Ditahan " atau " Gagal " tergantung pada hasil validasi gateway pembayaran. Kemudian jika pembayaran telah selesai maka status pesanan akan otomatis berubah menjadi “ Processing ”, sedangkan jika pembayaran gagal maka statusnya akan menjadi “ Failed ”.
Seperti yang Anda lihat, masing-masing status ini memberi kami informasi yang relevan tentang pesanan. Otomatisasi ini memberi tahu kami apakah pembayaran pesanan telah selesai atau tidak untuk mengirimkan produk kami ke pelanggan.
Status Pemesanan di WooCommerce
Ini semua status pesanan yang tersedia di WooCommerce dan artinya masing-masing:
- Pembayaran tertunda: Pesanan telah diterima dan tidak ada pembayaran yang didaftarkan. Kami sedang menunggu pembayaran
- Gagal: Pembayaran gagal karena beberapa alasan. Ini berarti bahwa itu ditolak dari platform pembayaran (yaitu, PayPal) atau memerlukan otentikasi lebih lanjut (SCA)
- Processing: Pembayaran telah diterima oleh toko, stok produk telah diperbarui dan pembelian sesuai jadwal pengiriman
- Selesai: Pesanan telah dipenuhi dan diselesaikan. Ini adalah keadaan terakhir dari pesanan di mana semuanya berjalan dengan baik
- Ditahan : Pelanggan belum melakukan pembayaran, sehingga pesanan memerlukan konfirmasi dari pengelola toko
- Dibatalkan : Baik admin toko atau pengguna telah membatalkan pesanan di beberapa titik. Ini tidak memerlukan tindakan lebih lanjut, meskipun disarankan untuk menghubungi pelanggan untuk memahami mengapa mereka membatalkan pesanan
- Dikembalikan: Pesanan telah dikembalikan, tidak ada tindakan lebih lanjut yang diperlukan
Sekarang setelah kita lebih memahami apa itu status pesanan dan fungsinya, mari kita lihat mengapa ada baiknya untuk memperbaruinya.
Mengapa mengubah fungsi status pesanan default?
Setiap toko eCommerce berbeda dan memiliki persyaratan khusus. Beberapa toko online mungkin tidak menggunakan status pesanan sama sekali atau mungkin tidak menggunakan semuanya. Misalnya, jika pembeli tidak dapat mengembalikan produk, toko mungkin tidak menggunakan status Pengembalian Dana .
Selain itu, mungkin ada beberapa kasus di mana fitur status pesanan default tidak cukup dan toko memerlukan status khusus atau solusi otomatis untuk manajemen status pesanan mereka. Dalam kasus ini, menyesuaikan perilaku status pesanan adalah solusi yang bagus untuk meningkatkan manajemen toko. Dengan cara ini, toko eCommerce tidak perlu memperbarui status pesanan secara manual dalam setiap kasus.
Ini akan membantu pemilik toko menghemat waktu dan membiarkan mereka fokus pada hal-hal yang lebih penting untuk meningkatkan bisnis mereka.
Bagaimana status pesanan berubah di WooCommerce
Pada titik ini, penting untuk dipahami bahwa status pesanan berubah secara dinamis ketika WooCommerce terintegrasi dengan gateway pembayaran seperti PayPal, Payoneer, Stripe, dan sebagainya. Ingatlah bahwa jika Anda memperbarui status secara manual saat tidak diharapkan, Anda dapat merusak metode pembayaran yang ditampilkan di toko Anda dan pelanggan tidak akan dapat mengikuti proses pembelian.
Untuk lebih memahami apa yang akan kita lakukan, mari kita lihat bagaimana alur status pesanan bekerja:
Dari dokumentasi WooCommerce
Seperti yang Anda lihat pada grafik di atas, tahap pertama dari status pesanan adalah “ Tertunda ”. Tepat setelah itu, gateway pembayaran memvalidasi apakah pengguna dapat menyelesaikan pembayaran dan mengubah statusnya menjadi " Ditahan ", lalu menjadi " Memproses " saat pembayaran berhasil diselesaikan. Jika tidak, itu akan berubah menjadi " Gagal ".
Setelah ini, WooCommerce tidak akan melakukan hal lain. Manajer toko harus menandai pesanan sebagai “ Selesai ”, atau “ Dibatalkan ”. Pada titik ini, aman untuk mengubah status pesanan secara otomatis (secara terprogram) bahkan jika ada gateway pembayaran yang terintegrasi.
Selain itu, penting untuk diketahui bahwa ketika status berubah menjadi “ Processing ” atau “ Refunded “, stok produk yang terlibat dalam pesanan akan dihitung ulang. Hal yang sama akan terjadi dengan semua statistik toko online yang terkait dengan pesanan itu.
Sekarang setelah kita memiliki gagasan yang jelas tentang bagaimana status pesanan berubah, mari kita lihat cara memperbarui status pesanan di WooCommerce .
Cara mengubah status pesanan secara otomatis di WooCommerce
Mari kita lihat beberapa contoh skrip untuk mengubah status pesanan secara terprogram di WooCommerce .
CATATAN : Kami akan mengedit beberapa file inti, jadi sebelum Anda mulai, pastikan Anda membuat cadangan penuh situs Anda. Selain itu, buat tema anak atau gunakan salah satu plugin ini jika Anda belum memilikinya, jadi Anda tetap dapat menyesuaikan bahkan setelah memperbarui tema.
Ubah semua status pesanan setelah pembelian
Jika toko eCommerce Anda tidak terintegrasi dengan gateway pembayaran apa pun yang menggunakan status pesanan, Anda dapat menahan semua pesanan tepat setelah pelanggan melakukan pemesanan, alih-alih membiarkannya sebagai "Sedang Diproses". Mari kita lihat skrip ini:
fungsi QuadLayers_change_order_status( $order_id ) { if ( ! $order_id ) {return;} $pesanan = wc_get_order( $pesan_id ); if( 'memproses'== $order->get_status() ) { $order->update_status( 'wc-ditahan' ); } } add_action('woocommerce_thankyou','QuadLayers_change_order_status');
Kami menggunakan kait woocommerce_thankyou
untuk memicu fungsi kami tepat setelah pesanan dilakukan, dan mengubah status menggunakan update_status()
.
Seperti yang Anda lihat, slug status memiliki awalan (WC). Meskipun fungsi tersebut juga berfungsi tanpa awalan, praktik yang disarankan untuk menggunakannya.
Perlu dicatat bahwa Anda dapat menggunakan status lain dan bahkan status khusus alih-alih "Ditahan" dengan menyesuaikan kode.
Ubah status pesanan dari ID pesanan
Skrip berikut akan mengubah status pesanan tunggal. Misalnya, untuk mengubah status pesanan pesanan 115, kami menggunakan cuplikan berikut:
add_action('init',fungsi(){ $pesanan = new WC_Order(115); $order->update_status('pemrosesan wc'); });
Ini adalah skrip pendek, jadi kami telah menggunakan fungsi anonim di hook WordPress 'init'
.
Perhatikan bahwa ini tidak akan memungkinkan Anda untuk membuat perubahan lebih lanjut pada status saat skrip diaktifkan.
Perbarui status pesanan WooCommerce untuk pelanggan yang kembali
Ini adalah contoh menarik lainnya untuk mengubah status pesanan secara otomatis di WooCommerce. Skrip di bawah ini akan mengubah status pesanan menjadi "Selesai" hanya jika pengguna memiliki pesanan sebelumnya yang dilampirkan dengan status "Selesai" atau "Selesai".
fungsi QuadLayers_order_status_returning( $order_id ) { // Dapatkan pesanan pelanggan ini $user_id = wp_get_current_user(); $pesanan_pelanggan = []; foreach ( wc_get_is_paid_statuses() sebagai $paid_status ) { $pesan_pelanggan += wc_get_orders( [ 'type' => 'shop_order', 'batas' => - 1, 'customer_id' => $user_id->ID, 'status' => $paid_status, ] ); } # pesanan sebelumnya ada if(count($customer_orders)>0){ if ( ! $order_id ) {return;} $pesanan = wc_get_order( $pesan_id ); if( 'memproses'== $order->get_status() ) { $order->update_status( 'wc-selesai' ); } } } add_action( 'woocommerce_terima kasih', 'QuadLayers_order_status_returning' );
Ini bisa menjadi ide bagus untuk menambahkan lapisan keamanan dan meningkatkan pengalaman berbelanja pelanggan yang kembali.
Ubah status pesanan pada parameter URL
Skrip contoh ini akan berubah ke status pesanan tertentu saat parameter URL ada di browser. Saat kami menggunakan init
WordPress hook, skrip akan berfungsi di halaman mana pun di toko.
Selain itu, ini akan mengedit status pesanan untuk pesanan terbaru dari pengguna yang saat ini masuk. Dalam contoh ini, status pesanan akan berubah menjadi “Dibatalkan” ketika URL mana pun memiliki parameter “kembalikan” seperti ini: https://website.com/shop?st=revert
add_action('init',fungsi(){ if(isset($_GET['st'])&&!empty($_GET['st']) ): $get_url = $_GET['st']; if($get_url=='kembalikan'): $user_id = wp_get_current_user(); $pesanan = wc_get_customer_last_order($user_id->ID); $order->update_status( 'wc-dibatalkan' ); berakhir jika; berakhir jika; });
Buat status pesanan khusus
Alih-alih mengubah status pesanan, dalam contoh ini, kami akan membuat status pesanan khusus baru yang dapat kami gunakan secara bebas. Ini adalah ide yang baik jika status yang ada tidak cukup atau Anda lebih suka membuat yang baru untuk kejelasan lebih lanjut. Setelah Anda membuat status pesanan khusus, Anda dapat menggunakannya dengan salah satu skrip di atas.
Script berikut akan mendaftar dan menambahkan status baru ke daftar status pesanan. Dalam hal ini, kami akan memanggil status pesanan kustom baru "Saya sedang berkembang ", tetapi Anda dapat menggunakan nama apa pun yang Anda inginkan hanya dengan menyesuaikan kode.
// Daftarkan status baru fungsi register_in_progress_order_status() { register_post_status( 'wc-in-progress', array( 'label' => 'Sedang berlangsung', 'publik' => benar, 'show_in_admin_status_list' => benar, 'show_in_admin_all_list' => benar, 'exclude_from_search' => salah, 'label_count' => _n_noop( 'Sedang berlangsung (%s) ', 'Sedang berlangsung (%s) ' ) ) ); } // Tambahkan status khusus ke daftar status pesanan fungsi add_in_progress_to_order_statuses( $order_statuses ) { $new_order_statuses = array(); foreach ( $order_statuses sebagai $key => $status ) { $new_order_statuses[ $key ] = $status; if ( 'pemrosesan wc' === $key ) { $new_order_statuses['wc-in-progress'] = 'Sedang berlangsung'; } } kembalikan $new_order_statuses; } add_action( 'init', 'register_in_progress_order_status' ); add_filter( 'wc_order_statuses', 'add_in_progress_to_order_statuses' );
Cara lain untuk mengubah status pesanan WooCommerce
Jika Anda mencari cara alternatif untuk memperbarui status pesanan default di WooCommerce, Anda dapat memeriksa beberapa plugin. Sayangnya, tidak banyak alat gratis untuk ini, tetapi ini adalah beberapa yang terbaik:
- Status Pesanan Kustom YITH : Alat yang sangat baik untuk mengelola status pesanan dan membuat yang khusus. Ini adalah salah satu alat terbaik di pasar tetapi tidak murah. Ini akan membuat Anda kembali 79.99€ per tahun.
- Manajer Status Pesanan WooCommerce : Plugin hebat lainnya untuk menambah, menghapus, dan mengedit status pesanan. Anda juga dapat memicu email berdasarkan status pesanan. Biayanya 49 USD per tahun.
- Status Pesanan Kustom untuk WooCommerce : Salah satu alat terbaik untuk mengelola status pesanan di WooCommerce. Ini adalah plugin premium yang dimulai dari 39 USD per tahun.
- Status Pesanan Kustom Ni WooCommerce : Salah satu dari sedikit plugin gratis andal yang memungkinkan Anda mengelola status pesanan dengan mudah.
Cara melihat status pesanan di toko WooCommerce Anda
Cara termudah untuk melihat status pesanan di toko Anda adalah dengan membuka dasbor WooCommerce Anda dan pergi ke Pesanan. Kemudian, buka pesanan apa pun, dan di bawah bagian Umum , tekan dropdown Status. Di sana Anda akan melihat semua pesanan di toko Anda.
Kesimpulan
Singkatnya, status pesanan adalah tag yang mewakili status pesanan saat ini. Meskipun WooCommerce menyertakan status default tertentu, menyesuaikannya bisa menjadi ide bagus bagi mereka yang ingin menghapus atau menambahkan yang baru. Ini juga bisa menjadi solusi menarik bagi bisnis yang membutuhkan solusi otomatis untuk manajemen status pesanan mereka.
Dalam panduan ini, kita telah melihat semua status pesanan default dan contoh berbeda untuk mengubah status pesanan secara otomatis di WooCommerce. Ini hanya beberapa ide tetapi masih banyak lagi yang dapat Anda lakukan. Kami menyarankan Anda menggunakan skrip ini sebagai dasar dan bermain-main untuk menyesuaikannya untuk toko Anda.
Untuk informasi lebih lanjut tentang cara menyesuaikan toko Anda, lihat tutorial ini:
- Cara menerapkan kupon WooCommerce secara otomatis
- Edit halaman Terima Kasih WooCommerce secara terprogram
- Cara menyesuaikan formulir pendaftaran WooCommerce
- 3 Metode untuk menguji pesanan WooCommerce
- Cara Menambahkan Filter Produk AJAX WooCommerce
Sudahkah Anda memperbarui status pesanan di toko Anda? Apakah Anda memiliki masalah dalam mengikuti panduan ini? Beri tahu kami di komentar di bawah!