Cara Menyembunyikan Metode Pengiriman WooCommerce Untuk Kondisi Tertentu

Diterbitkan: 2020-06-15

Metode pengiriman adalah layanan dan biaya yang dilihat pelanggan saat checkout saat membeli barang apa pun. Ini akan menjadi pilihan penting bagi toko eCommerce untuk pengalaman pengiriman yang lancar .

Sebagai solusi eCommerce, WooCommerce juga menyediakan metode pengiriman seperti Pengiriman gratis , Tarif tetap , dan Penjemputan Lokal yang dapat diatur untuk berbagai zona pengiriman berdasarkan lokasi. Misalnya, opsi Pengiriman gratis hanya tersedia untuk rentang kode pos tertentu yang dekat dengan lokasi toko dan opsi Tarif Tetap tersedia untuk bagian lain dari zona pengiriman.

Default Shipping Methods
Metode Pengiriman Default

Opsi pengiriman berbasis lokasi dapat dengan mudah dicapai oleh plugin tetapi untuk kondisi tertentu di mana lokasi tidak memainkan peran penting, menjadi sangat sulit bagi pemilik toko untuk mencapainya. Syaratnya bisa berupa:

  1. Metode Pengiriman tertentu seperti Pengiriman Gratis seharusnya tidak tersedia jika berat pesanan lebih dari sejumlah pon atau kg tertentu.
  2. Beberapa ketersediaan metode pengiriman juga didasarkan pada jumlah kuantitas atau harga seluruh pesanan. Misalnya, jika total pesanan lebih dari $250 maka hanya metode Pengiriman Gratis yang tersedia dan tidak ada metode pengiriman berbayar yang tersedia.

Mungkin ada lebih banyak kondisi seperti itu di mana metode pengiriman perlu ditampilkan atau disembunyikan selama checkout, tetapi dalam posting ini kami akan menjelaskan hal di atas 2. Untuk mencapai ini untuk toko WooCommerce Anda, Anda dapat menambahkan cuplikan kode atau menggunakan tarif pengiriman apa pun plugin yang tersedia.

Menggunakan cuplikan kode

Kita ambil contoh kondisi 1 yang disebutkan di atas dimana Free Shipping tidak boleh tersedia jika berat pesanan lebih dari 5 kg. Anda dapat mencapai ini dengan menambahkan kode di bawah ini di file functions.php dari tema yang sedang aktif.

Catatan: Perubahan ini dapat ditimpa dengan pembaruan tema saat ini, jadi disarankan untuk membuat tema anak dan menambahkan potongan kode yang diperlukan dalam file functions.php dari tema anak. Atau Anda dapat menggunakan plugin Cuplikan Kode untuk menambahkan cuplikan khusus.

 /** 
 * Sembunyikan pengiriman gratis ketika berat pesanan lebih dari 10kgs. 
 * 
 * @param array $rates Array harga yang ditemukan untuk paket. 
 * @return array 
 */ 
function ts_hide_free_shipping_for_order_weight( $rate, $package ) { 
    $order_weight = WC()->cart->get_cart_contents_weight(); 
 
    if ( $order_weight > 5 ) { 
        foreach( $rate sebagai $rate_id => $rate_val ) { 
            if ( 'free_shipping' === $rate_val->get_method_id() ) { 
                tidak disetel( $tarif[ $nilai_id ] );
            } 
        } 
    } 
    kembali $tarif; 
} 

add_filter( 'woocommerce_package_rates', 'ts_hide_free_shipping_for_order_weight', 100, 2 );

Di sini filter woocommerce_package_rates digunakan untuk mengubah tarif yang dihitung pada keranjang. Ini berisi semua tarif pengiriman yang akan tersedia setelah produk ditambahkan ke troli. Jadi, kami perlu menghapus metode pengiriman yang diperlukan yang akan menjadi Pengiriman gratis dalam kasus kami dari array yang dikembalikan dari filter ini jika berat pesanan lebih dari 5kg.

Halaman Produk:

Product with 6kg weight
Produk dengan berat 6kg

Halaman Keranjang dengan Metode Pengiriman:

Free shipping is not available for the product with weight more than 5kg
Pengiriman gratis tidak tersedia untuk produk dengan berat lebih dari 5kg

Contoh lain dari menyembunyikan metode pengiriman di WooCommerce Cart hanya mengizinkan Pengiriman Gratis saat checkout ketika total pesanan lebih dari $250. Ini dapat dicapai dengan menambahkan kode di bawah ini dalam file functions.php.

 /**
 * Sembunyikan tarif pengiriman ketika total pesanan lebih dari $250.
 *
 * @param array $rates Array harga yang ditemukan untuk paket.
 * @return array
 */
function ts_hide_shipping_for_order_total( $rate ) {
  $gratis = array();

  $order_total = WC()->cart->get_subtotal();
  
  if( $order_total > 250 ) {
    foreach ( $rate sebagai $rate_id => $rate ) {
      if ( 'free_shipping' === $rate->get_method_id() ) {
        $gratis[ $rate_id ] = $rate;
      }
    }
  }
  kembali ! kosong( $gratis) ? $gratis : $tarif;
}
add_filter( 'woocommerce_package_rates', 'ts_hide_shipping_for_order_total', 100 );

Di sini, ketika total pesanan lebih dari $250, maka array dengan hanya metode pengiriman gratis dikembalikan dari filter, jika tidak, semua tarif pengiriman dikembalikan.

Hide Shipping Rate when Order total is more than $250
Sembunyikan Tarif Pengiriman ketika total Pesanan lebih dari $250

Pada contoh diatas kita telah mengambil referensi metode Free Shipping, jadi metode id yang digunakan adalah free_shipping. Untuk mengubah metode pengiriman lainnya, id metodenya adalah:

Penjemputan Lokal: local_pickup
Tarif Tetap: tarif_datar

Fungsi get_method_id() mengambil id metode hanya untuk 3 metode untuk semua zona pengiriman dan bukan untuk metode individual dari satu zona pengiriman, jadi fungsi ini akan menyembunyikan semua tarif tetap, pengambilan lokal, atau metode pengiriman gratis yang tersedia saat checkout. Tetapi jika Anda ingin menyembunyikan metode pengiriman tertentu, maka kombinasi id metode pengiriman dan id instance perlu digunakan.

Misalnya, 'flat_rate:3' di mana 3 adalah id instance unik yang disimpan untuk setiap metode pengiriman untuk suatu zona dalam database. Anda dapat menemukan id contoh metode pengiriman dengan mengklik kanan pada metode pengiriman dan memeriksa elemen di alat pengembang di browser Anda.

Instance ID

Menggunakan Ekstensi WooCommerce yang berbeda untuk metode pengiriman

Ada beberapa ekstensi berbayar atau gratis yang tersedia untuk menyiapkan metode pengiriman untuk kondisi yang berbeda. Beberapa plugin yang paling banyak digunakan adalah:

Plugin Berbayar:

  1. Tabel Tarif Pengiriman oleh WooCommerce : Plugin ini memperluas opsi pengiriman default WooCommerce yang memberi Anda opsi pengiriman yang sangat dapat disesuaikan.
  2. Plugin Pengiriman Flat Rate Tingkat Lanjut Untuk WooCommerce : Plugin ini akan membantu Anda mengonfigurasi tarif pengiriman di toko Anda berdasarkan aturan pengiriman lanjutan.
  3. Plugin WooCommerce Advance Shipping oleh Jeroen sormani : Plugin ini memungkinkan Anda untuk mengaktifkan metode Pengiriman selama checkout berdasarkan aturan yang ditetapkan. Aturan dapat diatur untuk detail keranjang yang berbeda, detail produk, atau detail pengguna yang berbeda .
  4. Pengiriman Fleksibel Pro untuk WooCommerce oleh WP Desk : Plugin ini memungkinkan Anda untuk mengaktifkan metode pengiriman berdasarkan item tertentu, item baris keranjang, harga atau aturan berat .

Plugin Gratis:

Beberapa plugin di atas juga memiliki versi gratis untuk mereka dengan fitur terbatas. Mereka:

  1. WooCommerce Advanced Free Shipping oleh Jeroen Sormani: Ini adalah versi gratis dari plugin WooCommerce Advanced Shipping. Satu-satunya perbedaan dengan kedua plugin adalah bahwa plugin ini hanya mengizinkan metode pengiriman gratis untuk aturan yang ditetapkan dan plugin berbayar memungkinkan semua metode pengiriman.
  2. Pengiriman Fleksibel untuk WooCommerce oleh WP Desk : Ini adalah versi gratis dari plugin Flexible Shipping Pro untuk WooCommerce. Hal ini memungkinkan pengaturan metode pengiriman hanya untuk harga dan berat.

Untuk penjelasan detail dari plugin yang disebutkan di atas, Anda dapat memeriksa posting ini.

Kesimpulan

Seperti yang telah kita lihat di posting ini bahwa opsi pengiriman di muka dapat dicapai hanya dengan menambahkan cuplikan kode di situs web Anda atau dengan menggunakan berbagai plugin yang tersedia. Jadi Anda dapat mencoba cuplikan kode yang diberikan atau bereksperimen dengan salah satu plugin dan beri tahu kami jika ini bermanfaat untuk Toko WooCommerce Anda.