Cara Menyembunyikan Status Pesanan Di WooCommerce

Diterbitkan: 2020-11-12

WooCommerce Sembunyikan Status Pesanan Apakah Anda ingin menyembunyikan status pesanan inti di toko WooCommerce Anda? Baru-baru ini, seorang klien ingin saya menyembunyikan beberapa status pesanan di toko WooCommerce miliknya. Dalam posting ini, Anda akan melihat bagaimana Anda dapat dengan mudah menghapus beberapa status pesanan dan cara membuat yang khusus.

WooCommerce Sembunyikan Status Pesanan

Untuk berbagai alasan, Anda mungkin ingin menyembunyikan beberapa status pesanan inti. Namun, versi default WooCommerce memungkinkan Anda untuk menandai pesanan dengan salah satu status berikut selesai, diproses, pembayaran tertunda, ditangguhkan, dikembalikan dananya, dibatalkan, atau gagal.

Banyak plugin yang memungkinkan Anda untuk mengelola status pesanan, dan salah satunya adalah plugin ' WooCommerce Order Status Manager ' yang dihargai $49. Manajer Status Pesanan WooCommerce

Ini mungkin solusi yang mahal untuk toko Anda, tetapi ada cara mudah untuk melakukannya. Dalam versi WooCommerce saat ini, status pesanan disimpan sebagai status kiriman khusus, seperti konsep, terjadwal, atau diterbitkan untuk kiriman.

Cara Menyembunyikan Status Pesanan

Dengan itu, mari kita lihat bagaimana Anda dapat menyembunyikan status pesanan di WooCommerce menggunakan cuplikan kode. Untuk memeriksa pesan status pesanan default, masuk ke situs WordPress Anda dan akses Dasbor sebagai pengguna admin. Kemudian, klik WooCommerce > Pesanan . Anda akan melihat ini: status pesanan bagian belakang

Pesan-pesan ini juga ditampilkan di front-end saat pelanggan mencoba melakukan pemesanan. Ini dapat diakses dengan mengklik Akun Saya > Pesanan, seperti yang ditunjukkan di bawah ini: status pesanan ujung depan

Langkah-langkah untuk Menyembunyikan Status Pesanan Inti

Perlu disebutkan bahwa ketika Anda menyembunyikan status pesanan inti, pastikan tidak ada produk dengan status tersebut. Selain itu, Anda harus memastikan bahwa toko WooCommerce Anda tidak menggunakan status itu di mana pun, karena dapat menyebabkan kesalahan. Misalnya, jika Anda tidak berencana melakukan pengembalian uang di toko WooCommerce Anda, Anda dapat menyembunyikan status Pengembalian Dana.

Alasan mengapa kami tidak dapat menghapus semua status pesanan inti adalah karena plugin menggunakan status pesanan, bahkan yang tidak Anda gunakan dalam alur kerja Anda. Plugin seperti gateway pembayaran, selalu berasumsi bahwa status pesanan inti ada. Jika mereka tidak ada, mereka akan pecah

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 . Saat halaman Editor Tema dibuka, cari file fungsi tema untuk menambahkan fungsi menyembunyikan status pesanan inti di toko WooCommerce Anda.
  3. Tambahkan kode berikut ke file functions.php:
 /*

 * Menghapus status pesanan inti

 * @param array $wc_statuses_arr Array semua status pesanan di situs web

 */

fungsi njengah_remove_order_statuses( $wc_statuses_arr ){

            // Memproses

            if( isset( $wc_statuses_arr['wc-processing'] ) ) { // jika ada

                        unset( $wc_statuses_arr['wc-processing'] ); // hapus dari array

            }

            // Dikembalikan

            if( isset( $wc_statuses_arr['wc-refunded'] ) ){

                        unset( $wc_statuses_arr['wc-refunded'] );

            }

            // Tertahan

            if( isset( $wc_statuses_arr['wc-on-hold'] ) ){

                        unset( $wc_statuses_arr['wc-on-hold'] );

            }

            // Gagal

            if( isset( $wc_statuses_arr['wc-failed'] ) ){

                        unset( $wc_statuses_arr['wc-failed'] );

            }

            // Pembayaran tertunda

            if( isset( $wc_statuses_arr['wc-pending'] ) ){

                        unset( $wc_statuses_arr['wc-pending'] );

            }

            // Lengkap

            //if( isset( $wc_statuses_arr['wc-completed'] ) ){

            // unset( $wc_statuses_arr['wc-selesai'] );

            //}

            // Dibatalkan

            //if( isset( $wc_statuses_arr['wc-cancelled'] ) ){

            // tidak disetel( $wc_statuses_arr['wc-dibatalkan'] );

            //}

            kembalikan $wc_statuses_arr; // kembalikan status hasil

}

add_filter( 'wc_order_statuses', 'njengah_remove_order_statuses' );
  1. Ini adalah hasil di ujung depan: sembunyikan status pesanan
  2. Untuk menambahkan status pesanan khusus, tambahkan kode berikut di file functions.php:
 /**

* Daftarkan status baru dengan ID "wc-njengah-shipment" dan label "Menunggu kiriman"

*/

function njengah_register_awaiting_shipment_status() {
register_post_status( 'wc-njengah-pengiriman', array(

'label' => 'Menunggu pengiriman',

'publik' => benar,

'show_in_admin_status_list' => true, // tampilkan hitungan Semua (12) , Selesai (9) , Menunggu pengiriman (2) ...

'label_count' => _n_noop( 'Menunggu pengiriman <span class="count">(%s)</span>', 'Menunggu pengiriman <span class="count">(%s)</span>' )

) );
}

add_action( 'init', 'njengah_register_awaiting_shipment_status' );

/*

* Tambahkan status terdaftar ke daftar status Pesanan WC

* @param array $wc_statuses_arr Array semua status pesanan di situs web

*/

function njengah_add_status( $wc_statuses_arr ) {
$new_statuses_arr = array();

// tambahkan status pesanan baru setelah diproses

foreach ( $wc_statuses_arr sebagai $id => $label ) {

$new_statuses_arr[ $id ] = $label;

if ( 'wc-completed' === $id ) { // setelah status "Selesai"

$new_statuses_arr['wc-njengah-shipment'] = 'Menunggu pengiriman';

}

}
kembalikan $new_statuses_arr;

// jika status pesanan pesanan tidak penting bagi Anda, Anda dapat menghapus baris 21-32 dan batalkan komentar pada 35-36 berikut

// $wc_statuses_arr['wc-njengah-shipment'] = 'Menunggu pengiriman';

// kembalikan $wc_statuses_arr;
}

add_filter( 'wc_order_status', 'njengah_add_status' );
  1. Ini adalah hasilnya: tambahkan status pesanan khusus

Kesimpulan

Dalam posting ini, Anda telah melihat bagaimana Anda dapat menyembunyikan status pesanan inti. Namun, penting untuk dicatat bahwa status pesanan yang ingin Anda hapus tidak digunakan di mana pun di toko Anda, karena dapat menyebabkan kesalahan. Selain itu, saya telah membagikan cara menambahkan status pesanan khusus. Jika Anda tidak terbiasa menangani kode, silakan hubungi pengembang WordPress yang memenuhi syarat.

Artikel Serupa