
WooCommerce lahko na blagajni hkrati prikaže več načinov dostave, tudi kadar je kupec že upravičen do brezplačne dostave.
Tako se lahko zgodi, da kupec vidi:
- GLS – 4,90 €
- Pošta Slovenije – 5,50 €
- Brezplačna dostava – 0,00 €
- Osebni prevzem – 0,00 €
To ni vedno najboljša uporabniška izkušnja, saj so plačljive možnosti dostave v tem primeru nepotrebne.
S spodnjim snippetom lahko WooCommerce samodejno skrije plačljive načine dostave, kadar je brezplačna dostava na voljo, osebni prevzem pa ostane prikazan.
Zakaj skriti plačljive načine dostave?
Če je kupec upravičen do brezplačne dostave, običajno nima smisla, da še vedno izbira med plačljivimi možnostmi dostave.
S tem:
- poenostaviš izbiro na blagajni,
- zmanjšaš možnost napačne izbire,
- izboljšaš preglednost,
- ohraniš osebni prevzem kot dodatno možnost.
Osebni prevzem je smiselno pustiti prikazan tudi takrat, ko je njegova cena 0,00 €, saj ga lahko kupec izbere namesto dostave na naslov.
Kaj točno naredi ta snippet?
Snippet preveri, ali je med trenutno razpoložljivimi načini dostave prisotna WooCommerce metoda:
Brezplačna dostava
Če je brezplačna dostava na voljo, snippet:
- prikaže brezplačno dostavo,
- ohrani osebni prevzem,
- skrije ostale plačljive načine dostave.
Če brezplačna dostava ni na voljo, se ne spremeni nič in WooCommerce prikaže vse običajne načine dostave.
Primer pred doseženim pogojem za brezplačno dostavo
Kupec ima v košarici izdelke v vrednosti 35 €:
GLS – 4,90 €
Pošta Slovenije – 5,50 €
Osebni prevzem – 0,00 €
Ker brezplačna dostava še ni na voljo, ostanejo prikazane vse možnosti.
Primer po doseženem pogoju za brezplačno dostavo
Kupec doseže vrednost košarice 50 € in WooCommerce omogoči brezplačno dostavo.
Snippet nato prikaže samo:
Brezplačna dostava – 0,00 €
Osebni prevzem – 0,00 €
GLS in Pošta Slovenije se samodejno skrijeta.
Pomembno: snippet ne določa pogojev za brezplačno dostavo
Pogoj za brezplačno dostavo še vedno nastaviš v WooCommerce nastavitvah.
Na primer:
WooCommerce → Nastavitve → Dostava → Območja dostave
Tam lahko določiš, da je brezplačna dostava na voljo:
- nad določenim zneskom,
- ob uporabi kupona,
- brez posebnega pogoja,
- ali glede na druge WooCommerce nastavitve.
Snippet samo preveri, ali je brezplačna dostava že na voljo, in nato skrije preostale plačljive metode.
Navodila: kako dodati kodo s Code Snippets vtičnikom
Namestite Code Snippets vtičnik
V WordPress skrbniški plošči odpri:
Vtičniki → Dodaj novega → poišči Code Snippets → Namesti → Aktiviraj
Dodaj nov snippet
- Odpri Snippets → Add New
- Kot naslov vpiši:
WooCommerce – Skrij plačljive dostave, ko je na voljo brezplačna dostava
- V polje za kodo prilepi celotno kodo spodaj.
- Nastavi izvajanje na:
Run snippet everywhere
- Shrani in aktiviraj snippet.
Celotna koda (kopiraj brez sprememb)
/**
* @snippet WooCommerce – Skrij plačljive dostave, ko je na voljo brezplačna dostava
* @opis Ko je na voljo brezplačna dostava, skrije ostale plačljive načine dostave, osebni prevzem pa ostane prikazan.
* @verzija 1.1
* @avtor WP Lab – https://wplab.si
*/
add_filter( 'woocommerce_package_rates', 'wplab_hide_paid_shipping_when_free_available', 100 );
function wplab_hide_paid_shipping_when_free_available( $rates ) {
$free_shipping_available = false;
// Preverimo, ali je na voljo WooCommerce brezplačna dostava.
foreach ( $rates as $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free_shipping_available = true;
break;
}
}
// Če brezplačna dostava ni na voljo, ne spreminjamo ničesar.
if ( ! $free_shipping_available ) {
return $rates;
}
$allowed_rates = array();
foreach ( $rates as $rate_id => $rate ) {
// Ohranimo brezplačno dostavo in osebni prevzem.
if (
'free_shipping' === $rate->method_id ||
'local_pickup' === $rate->method_id
) {
$allowed_rates[ $rate_id ] = $rate;
}
}
return $allowed_rates;
}Kako preveriti, ali snippet deluje?
Najprej v WooCommerce nastavi brezplačno dostavo, na primer nad 50 €.
Nato v trgovini naredi dva testa.
Pri košarici pod 50 € bi morale ostati prikazane vse običajne možnosti dostave.
Pri košarici nad 50 € pa bi morala ostati samo:
Brezplačna dostava
Osebni prevzem
Če se plačljive metode skrijejo, snippet deluje pravilno.
Zaključek
S tem WooCommerce snippetom lahko precej poenostaviš prikaz dostave na blagajni.
Ko je brezplačna dostava na voljo:
- se plačljivi načini dostave skrijejo,
- brezplačna dostava ostane prikazana,
- osebni prevzem ostane prikazan,
- pogoji za brezplačno dostavo ostanejo pod nadzorom WooCommerce nastavitev.
Gre za majhen, pregleden snippet, s katerim ni potrebe po dodatnem vtičniku samo za skrivanje načinov dostave.



