Guide: WooCommerce: Giv rabat på fragt ved køb for X kroner

Udgivet: 27. juli 2021

Tit ser man på webshops, at man får gratis fragt af sin ordre, hvis man køber for f.eks. 500 kroner eller derover. Det kan også være, at man bare får tilbud på fragten – f.eks. halv pris på fragten ved køb for minimum 500 kroner. Uanset om man gør det på den ene eller den anden måde, er der ingen tvivl om, at det er en god idé at få det implementeret.

Når det er implementeret på din webshop, er det samtidig et slags “salgstrick”, som øger sandsynligheden for, at kunden lægger mere i kurven end ellers.

Giv rabat på fragt med din WooCommerce webshop – det er hvad jeg vil lærer dig i dette indlæg. Om dine kunder skal have gratis fragt ved køb af X kroner, eller blot en rabat, er helt op til dig.

Til at lave denne funktion, kan du bruge diverse WordPress-plugins, men jeg anbefaler til en hver tid, at man skal installerer så lidt plugins som overhovedet muligt. Hvorfor kan du læse mere om i mit tidligere indlæg, hvor jeg uddyber, hvorfor for mange plugins kan dræbe din wordpress hjemmeside. Derfor anbefaler jeg i stedet, at vi koder funktionen selv – MEN BARE ROLIG! Jeg serverer det hele på et sølvfad til dig, og du behøver ikke at være et teknisk geni for at lave funktionen. Lav en kop god kaffe, så ser vi på det sammen 👇

 

Okay… først skal vi én af de følgende ting:

  1. Oprette et child theme
  2. Installere et plugin som man kan skrive PHP-kode i

 

Jeg vil anbefale at vi går med nummer ét. Hvorfor hænger sammen med det jeg nævnte før, at det handler om at bruge så lidt plugins som overhovedet muligt. Hvis din WordPress-hjemmeside allerede kører med et child theme, perfekt! Ellers viser jeg dig hvordan du gør – du skal bare klikke på punktet nummer ét.

 

Inden vi begynder at implementerer kode på webshoppen, skal vi først sikre os at alle vores forsendelsesmetoder er oprettet. Hvis du ønsker at dine kunder skal få gratis fragt, hvis de køber for X kroner, skal du oprette begge mulige forsendelsesmetoder:

  • Gratis fragt
  • Almindelig levering

Hvis du i stedet ønsker at dine kunder skal få rabat på fragten, skal du i stedet oprette forsendelsesmetoderne:

  • Levering med tilbud
  • Almindelig levering

Du opretter forsendelsesmetoderne under WooCommerce –> Indstillinger –> Forsendelse –> (Din allerede oprettede forsendelseszone)

 

PHP-koden som vi skal bruge er nedenstående, som vi enten skal indsætte i et plugin (punkt nummer 2), eller indsætte i filen functions.php i vores child theme.

add_filter( 'woocommerce_package_rates', 'dbn_woocommerce_tiered_shipping', 10, 2 );

function dbn_woocommerce_tiered_shipping( $rates, $package ) {
   $graense = 500; // Ændre '500' til hvad din grænseværdi er.
   if ( WC()->cart->subtotal < $graense ) {
      unset( $rates['flat_rate:5'] ); // Fjern hvis under grænse.
   } else {
      unset( $rates['flat_rate:2'] ); // Fjern hvis over grænse.
   }
   return $rates;
}

 

Som jeg skriver som kommentarer i koden, så skal du tilpasse koden så den passer til dine behov, og dine forsendelsesmetoder. Lad os se nærmere på koden! 👇

 

Du skal ikke spekulerer en masse over hvad der sker, så længe vi har styr på det mest basale.

Det som sker nedenfor, er at vi skal sætte en grænseværdi. Med andre ord indtaster vi hvor meget kunden minimum skal handle for, inden vi giver gratis fragt eller rabat på fragten. I eksemplet har jeg indtastet 500, men du kan ændre det til hvad der passer til din forretning.

$graense = 500; // Ændre '500' til hvad din grænseværdi er.

 

Okay, FEDT! Du har nu angivet hvad din grænseværdi er. Det næste vi skal, er at fjerne forsendelsesmetoderne, alt efter hvor meget kunden har lagt i kurven for. Det som der sker i eksemplet nedenfor, er at vi først siger: Hvis (if) subtotalen i kurven er under vores grænseværdi, skal vi fjerne forsendelsesmetoden med værdien ‘flat_rate:5’. Hvis subtotalen er over grænseværdien (else), skal vi fjerne forsendelsesmetoden med værdien ‘flat_rate:2’. Det er også hvad jeg har skrevet som kommentar til koden (efter //).

if ( WC()->cart->subtotal < $graense ) {
      unset( $rates['flat_rate:5'] ); // Fjern hvis under grænse.
   } else {
      unset( $rates['flat_rate:2'] ); // Fjern hvis over grænse.
   }

 

Det næste og sidste vi mangler, er at finde disse værdier for vores forsendelsesmetoder – det er nemlig ikke bare navnet derpå.

Billedet nedenfor er fra mit seneste projekt, nemlig Kødboxen.dk, hvor vi også bruger koden som præsenteret her i indlægget. På skærmbilledet, viser jeg hvordan jeg finder værdien for forsendelsesmetoden “Levering: 50,00 DKK”.

Jeg starter med at højreklikke et sted på hjemmesiden, hvor jeg klikker på “Undersøg”, for at få udvikler-værktøjet frem i browseren. Hvor pilen peger, kan du se værdien. Det er værdien af et <input>-tag, som ligger under et <li>-tag.

Når du har fundet værdierne af forsendelsesmetoderne, kan du implementerer værdierne i koden som ovenfor.

WooCommerce forsendelsesmetode værdi

 

Vil koden ikke det samme som dig? Så skriv en kommentar til indlægget her, så hjælper jeg gerne! 😊

Daniel Brogaard Nielsen