Cara memperbarui harga produk secara terprogram di WooCommerce

Diterbitkan: 2020-10-10

Apakah Anda ingin mempelajari cara memperbarui harga produk secara terprogram di WooCommerce ? Dalam panduan ini, kami akan menunjukkan cara mengubah harga di WooCommerce tanpa menggunakan plugin apa pun atau memasang alat tambahan apa pun.

Jika Anda menggunakannya dengan cerdas, diskon dapat membantu Anda meningkatkan tingkat konversi dan meningkatkan penjualan Anda. Ada beberapa cara untuk menerapkan diskon pada toko e-commerce Anda. Misalnya, Anda dapat menerapkan kupon WooCommerce secara terprogram.

Namun, Anda juga dapat memperbarui harga produk tanpa menggunakan kupon . Misalnya, Anda dapat memberikan diskon eksklusif kepada pengguna yang berlangganan buletin Anda atau yang telah menghabiskan lebih dari $100 di toko Anda.

Dalam panduan ini, Anda akan belajar mengubah harga saat pelanggan menambahkan produk ke keranjang tanpa menggunakan kupon apa pun dan dengan mengakses objek keranjang WooCommerce secara langsung. Kami akan melihat beberapa contoh dan menerapkan beberapa logika saat memperbarui harga. Tujuannya adalah Anda memahami logikanya sehingga Anda dapat menyesuaikan skrip dan menerapkannya ke toko Anda.

Cara memperbarui harga produk secara terprogram di WooCommerce

Di bagian ini, Anda akan mempelajari cara memperbarui harga produk secara terprogram di WooCommerce . Kami akan melihat contoh yang berbeda untuk memberi Anda beberapa ide tentang apa yang dapat Anda lakukan di toko Anda.

  1. Perbarui harga produk saat kotak centang dipilih
    1. Tambahkan bidang input kotak centang ke halaman produk
    2. Perbarui harga saat pengguna menambahkan produk ke keranjang
    3. Hitung ulang total harga troli
  2. Edit harga produk berdasarkan peran pengguna
  3. Perbarui harga produk berdasarkan taksonomi produk

Ingatlah bahwa kami akan menggunakan beberapa kait WooCommerce jadi ada baiknya untuk membaca panduan ini jika Anda tidak terbiasa dengannya.

Sebelum kita mulai…

Sebelum memulai, karena kami akan membuat modifikasi pada beberapa file inti, kami sarankan Anda memasang tema anak di situs Anda. Jika Anda tidak memiliki tema anak dan Anda tidak tahu cara memasangnya, lihat panduan kami untuk membuat tema anak atau daftar plugin tema anak terbaik kami.

CATATAN : Untuk menerapkan skrip ini, salin dan tempel di file functions.php dari tema anak. Namun, perlu diingat bahwa itu dimaksudkan untuk tujuan didaktik saja, jadi sesuaikan sebelum membawanya ke produksi.

1) Perbarui harga produk ketika kotak centang dipilih

Dalam contoh skrip berikut, kami akan menambahkan input kotak centang di formulir keranjang di halaman produk . Dengan cara ini, kami dapat menerapkan logika khusus dan secara dinamis memperbarui harga produk apa pun yang ditambahkan pelanggan ke keranjang hanya ketika kotak centang dipilih. Cara memperbarui harga produk secara terprogram di WooCommerce

1.1 Tambahkan bidang input kotak centang ke halaman produk

Sebelum kami memperbarui harga produk WooCommerce secara terprogram, mari tambahkan kotak centang ke halaman produk . Untuk melakukannya, cukup salin dan tempel skrip berikut:

 add_action('woocommerce_after_add_to_cart_button', 'add_check_box_to_product_page', 30 );
fungsi add_check_box_to_product_page(){ ?>     
       <div>           
<label for="extra_pack"> <?php _e( 'Kemasan ekstra', 'quadlayers' ); ?>
<input type="kotak centang" name="extra_pack" value="extra_pack"> 
</label>
                    
</div>
     <?php
}

Kait woocommerce_after_add_to_cart_button memungkinkan kita untuk mencetak kotak centang tepat setelah tombol seperti yang ditunjukkan pada gambar di atas.

1.2 Perbarui harga saat pengguna menambahkan produk ke keranjang

Pilihan lain yang menarik adalah memperbarui harga secara dinamis ketika pelanggan menambahkan produk ke keranjang mereka . Jadi, dalam hal ini, untuk memperbarui harga secara terprogram di WooCommerce cukup tempel skrip ini tepat setelah yang sebelumnya.

 add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 );
 
fungsi add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
     // dapatkan id & harga produk
    $produk = wc_get_product( $produk_id );
    $harga = $produk->get_harga();
    // kotak centang paket ekstra
    if( ! kosong( $_POST['extra_pack'] ) ) {
       
        $cart_item_data['new_price'] = $harga + 15;
    }
kembalikan $cart_item_data;
}

woocommerce_add_cart_item_data adalah pengait WooCommerce yang memungkinkan kita mengedit harga produk saat ini. Selain itu, kondisi if() memeriksa apakah kotak centang dipilih atau tidak, dan jika ya, memperbarui harga di baris berikut. Sekarang, mari kita urai kodenya untuk lebih memahami apa yang dilakukan setiap bagian.

  • extra_pack adalah nama kotak centang yang telah kita buat di langkah sebelumnya
  • $price adalah harga produk saat ini. Kita bisa memodifikasinya sesuka kita dengan beberapa syarat
  • $cart_item_data['new_price'] = $price + 15; adalah bagaimana kita menaikkan harga sebesar $15 ketika kondisi if() benar, ini adalah saat pengguna memilih kotak centang kemasan ekstra. Dengan menyesuaikan kode, Anda dapat memilih untuk menaikkan atau menurunkan harga dengan jumlah berapa pun yang Anda inginkan.

1.3 Hitung ulang total harga keranjang

Karena kita dapat memanggil kait woocommerce_add_cart_item_data beberapa kali saat memuat keranjang, kita perlu menghitung ulang total dan subtotal dari keranjang untuk menghindari hasil yang tidak diinginkan seperti harga diperbarui beberapa kali atau setiap kali pengguna menambahkan produk. Untuk memperbarui produk, tempel kode berikut setelah dua kode sebelumnya:

 add_action( 'woocommerce_before_calculate_totals', 'before_calculate_totals', 10, 1 );
 
fungsi before_calculate_totals( $cart_obj ) {
if ( is_admin() && ! didefinisikan( 'DOING_AJAX' ) ) {
kembali;
}
// Ulangi setiap item keranjang
foreach( $cart_obj->get_cart() sebagai $key=>$value ) {
if( isset( $nilai['harga_baru'] ) ) {
$harga = $nilai['harga_baru'];
$nilai['data']->set_price( ( $harga ) );
}
}
}

Fungsi ini memastikan bahwa kami hanya memperbarui harga saat produk cocok dengan logika kondisional kami (bahwa pengguna memilih kotak centang kemasan ekstra). Dengan cara ini, kami mencegah semua kemungkinan kesalahan saat menghitung total harga keranjang. Perbarui harga produk secara terprogram di WooCommerce - Biaya tambahan

Harga produk naik $15

Jika semuanya berjalan dengan baik dan kereta memenuhi ketentuan yang kami tetapkan, fungsi kami akan menambahkan biaya tambahan $15 ke harga asli saat pengguna memilih kotak centang di halaman produk, sebelum mengklik tombol Tambahkan ke keranjang.

Untuk menghindari pengabaian keranjang dan meningkatkan pengalaman membeli, Anda harus selalu menampilkan harga baru sebelum pelanggan menambahkan produk ke keranjang mereka . Jika tidak, mereka hanya akan melihat harga akhir di halaman checkout.

2. Edit harga produk berdasarkan peran pengguna

Demikian pula, kami dapat memperbarui harga produk WooCommerce secara terprogram berdasarkan peran pengguna . Misalnya, Anda dapat memberikan diskon eksklusif kepada pengguna yang berlangganan atau terdaftar. Untuk melakukannya, salin dan tempel skrip berikut:

 fungsi add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
    // dapatkan id & harga produk
   $produk = wc_get_product( $produk_id );
   $harga = $produk->get_harga();
   if(// Sudah masuk && adalah peran pelanggan
       is_user_logged_in()==true&& wc_current_user_has_role( 'pelanggan' )){
       
        $cart_item_data['new_price'] = $harga * 0.8;
   }
kembalikan $cart_item_data;
}
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 );

Seperti yang Anda lihat, satu-satunya perbedaan antara skrip ini dan skrip sebelumnya di poin 1.2 adalah operator logika if() . Di sini, kami memeriksa apakah pengguna masuk atau tidak dan apakah itu memiliki peran pelanggan, yang kami tetapkan untuk pengguna terdaftar yang telah membeli dari toko kami sebelumnya.

Saat pembeli memenuhi kondisi itu, kami mengalikan harga produk dengan 0,8 , memberi mereka diskon 20%. Tentu saja, Anda dapat mengedit peran pengguna dan mengubahnya untuk orang lain seperti Pelanggan, Editor, atau peran lain yang telah Anda daftarkan di situs web Anda.

Perhatikan bahwa untuk bekerja dengan baik, Anda juga perlu menggunakan fungsi 'before_calculate_totals' dan pengaitnya untuk menghitung ulang total keranjang. Jadi cukup gunakan hitung ulang total harga script cart yang kita lihat di langkah 1.3.

3. Update harga produk berdasarkan taksonomi produk

Terakhir, di WooCommerce kami juga dapat memperbarui harga produk secara dinamis secara terprogram berdasarkan taksonomi produk . Untuk melakukan itu, mari kita lihat skrip berikut.

 add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 );
 
fungsi add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
     // dapatkan id & harga produk
    $produk = wc_get_product( $produk_id );
    $harga = $produk->get_harga();
    $terms = get_the_terms( $product_id, 'product_cat' );
    // Kategori cocok ! terapkan diskon
    if($terms[0]->name=='Poster'){                    
        $cart_item_data['new_price'] = $harga + 20;
     }   
kembalikan $cart_item_data;
 
}

Dalam contoh ini, kita mendapatkan kategori produk yang telah ditambahkan ke keranjang menggunakan fungsi get_the_terms() WordPress. Pada baris berikutnya, kami menerapkan kondisi kami untuk mengambil kategori produk menggunakan $terms[0]->name . Dengan cara ini, jika produk termasuk dalam kategori Poster, kami menaikkan harganya sebesar $20.

Ini adalah contoh skrip yang dapat Anda ambil sebagai dasar dan edit untuk mengubah taksonomi dan jumlah yang ingin Anda tambahkan atau kurangi dari harga.

Terakhir, ingat bahwa Anda perlu menggunakan fungsi 'before_calculate_totals' dan pengaitnya yang sesuai seperti yang kita lakukan pada langkah 1.3.


Seperti yang Anda lihat, pengetahuan menggunakan fungsi bersyarat dan WordPress/WooCommerce akan memberikan cara yang sangat fleksibel untuk memperbarui harga produk secara terprogram. Ini hanya beberapa contoh untuk memberi Anda ide tentang apa yang mungkin.

Namun, masih banyak lagi yang dapat Anda lakukan untuk melepaskan kreativitas Anda dan menemukan cara baru untuk mengedit harga produk Anda. Misalnya, Anda dapat menerapkan diskon pada ID produk tertentu, berdasarkan URL asal pengguna, bergantung pada lokasi atau ID pengguna, dan seterusnya. Kemungkinannya tidak terbatas, jadi bermainlah dengan skrip dan temukan solusi terbaik untuk toko Anda.

CATATAN AKHIR

  • Contoh skrip di poin 1, 2, dan 3 ini tidak akan bekerja sama. Anda perlu memperbaiki logika Anda menjadi satu jika Anda ingin menerapkan beberapa fungsi secara bersamaan
  • Anda mungkin perlu menyertakan fungsi validasi tambahan untuk logika kondisional yang lebih kompleks
  • Selalu terapkan fungsi penghitungan ulang – seperti yang terlihat pada poin 1.3 – saat bekerja dengan objek keranjang WooCommerce
  • Ini adalah contoh skrip dan dimaksudkan untuk tujuan didaktik saja. Harap sesuaikan sebelum membawanya ke produksi

Kesimpulan

Secara keseluruhan, mempelajari cara memperbarui harga produk secara terprogram di WooCommerce dapat memberi Anda banyak fleksibilitas. Anda dapat memberikan diskon kepada pengguna yang berlangganan, menambahkan biaya jika pelanggan menginginkan pengemasan ekstra atau pengiriman cepat, dan sebagainya. Dan bagian terbaiknya adalah Anda tidak perlu menginstal plugin apa pun untuk melakukannya.

Dalam panduan ini, kita telah melihat contoh berbeda untuk mengubah harga secara terprogram secara dinamis. Namun, itu hanya puncak gunung es. WooCommerce memberi Anda kemungkinan tak terbatas, jadi kami sarankan Anda bermain-main dan menyesuaikan skrip.

Jika Anda memiliki pertanyaan tentang skrip, beri tahu kami di komentar di bawah. Kami akan dengan senang hati membantu Anda.

Terakhir, jika Anda ingin meningkatkan proses checkout Anda, lihat panduan kami untuk mengoptimalkan checkout.