WooCommerce: Toon hoever de klant van gratis verzending is verwijderd

In deze code snippet toon je in de winkelwagen hoeveel de klant nog moet bestellen om gratis verzending te krijgen.

Wil je direct een mail ontvangen wanneer nieuwe snippets zijn toegevoegd?

Vul dan onderstaand formulier in en je krijgt direct na het toevoegen van nieuwe snippets een email. Zo blijf je altijd bij!

Eén van de goede manieren om de Average Order Value van je webwinkel te verhogen is vanaf een bepaald bedrag gratis verzending aan te bieden. In deze code snippet laat ik je zien hoe je eenvoudig op de winkelwagen pagina kan laten zien, hoever de klant nog verwijderd is van gratis verzending.

Ik zal je eerst de code laten zien, daarna wordt hij besproken.

<?php
add_action('woocommerce_before_cart','wxp_free_shipping_notice');

function wxp_free_shipping_notice() {
   $min_free = 50; //Vul hier het bedrag in wat minimaal bereikt moet worden
   $current = WC()->cart->subtotal;
   if ($current < $min_free) {
      $text = sprintf('Gratis verzending bij bestellingen boven %1$s euro, wanneer je voor minimaal %2$s bestelt, betaal je geen verzendkosten', 
      $min_free, wc_price($min_free - $current));
   } else {
     $text = 'Je hoeft geen verzendkosten te betalen';
   }
   $shop_page = get_permalink(wc_get_page_id('shop'));
   $notice = sprintf('<a href="%s" class="button wc-forward">%s</a>%s'
             esc_url($shop_page), 'Verder winkelen', $text);
   wc_print_notice($notice, 'notice');
}

Omdat we deze tekst boven de shoppingcart willen plaatsen moeten we inhaken op de ‘woocommerce_before_cart’ hook, de hook die door WordPress wordt aangeroepen voordat de winkelwagen wordt getoond. Dat vertellen we WordPress op regel 2, en vanaf regel 4 zie je de inhoud van de functie.

Op regel 5 geven we aan vanaf welk bedrag er gratis verzending is.

Op regel 6 roepen we de methode ‘subtotal’ van de winkelwagen aan om te zien wat op dat moment het totaal aan producten in de winkelwagen is. De reden dat we geen ’total’ aanroepen, is omdat bij ’total’ ook de bijkomende kosten als verzending meegenomen worden in het totaal.

Een aandachtspunt is, dat het bedrag voor gratis verzending ex btw moet zijn, wanneer je de bedragen in de winkel ex btw toont, en -logischerwijs- inclusief, wanneer je de bedragen inclusief toont.

Regel 7 spreekt voor zich. Op regel 8 kan je de tekst aanpassen aan je behoefte. Let op de variabelen %1$s en %2$s. Dit zijn ‘placeholders’ voor respectievelijk de eerste en de tweede parameter, die wordt meegegeven. Hierdoor heb je meer vrijheid in het kiezen van je tekst. Zou je alleen %s als placeholders hebben gebruikt, dan worden de parameters in volgorde van de meegegeven parameters getoond.

Wil je bedragen in WooCommerce laten zien gebruik dan altijd de functie wp_price(), deze geeft de waarden voor de bedragen terug in de formaat opties zoals aangegeven in de settings van WooCommerce.

In regel 13 bepalen we wat de URL naar de winkelwagen is. De functie ‘wc_get_page_id()’ geeft de ID terug van een pagina aan de hand van de slug van een pagina, maar waar de pagina’s ‘speciale’ pagina’s zijn in WooCommerce, zoals bijvoorbeeld de shop, myaccount, cart en checkout pagina, dan wordt niet niet gekeken naar een pagina met die naam, maar de pagina die bij de settings staat ingesteld als de pagina die de winkelwagen, mijn account, winkelwagen of afrekenpagina moet afhandelen.

Op deze manier krijg je -ongeacht de taalversie van de site en veranderingen aan urls, altijd de juiste pagina, de functie ‘get_permalink()’ geeft vervolgens de complete URL voor die pagina.

De regels 14 en 15 laten opnieuw het gebruik van de sprintf variabelen zien. Wanneer daarop geklikt wordt, kan de klant verder winkelen. Belangrijk hier is ook het gebruik van de functie esc_url(). Hierdoor wordt de URL altijd op de juiste manier geformatteerd. Gebruik je URL’s als output voor je WordPress PHP code, dient die url altijd ‘escaped’ te zijn.

Tenslotte tonen we de tekst. Om deze opvallend te tonen gebruiken we de standaard functie wc_print_notice van WooCommerce. Deze krijgt twee parameters mee, de notitie die je wilt tonen en het ’type’ notitie. Hier zijn drie waarden mogelijk: ‘error’, ‘warning’ en ‘notice’.

We zetten hier geen bericht direct op het scherm, omdat de functie wp_print _notice ervoor zorgt, dat het type bericht opgemaakt is volgens de opmaak van het thema.

Ik gebruik (random pagebuilder) en ik zie het bericht niet verschijnen

Wanneer je het bericht niet ziet verschijnen in een pagebuilder dan is het mogelijk dat de maker van jouw pagebuilder een apart component/module/element/widget (afhankelijk van de benaming van je pagebuilder) heeft voor het tonen van Woo berichten. Deze moet je dan eerst plaatsen op je pagina.

Codesnippet verbeteren

Het doel van deze code snippet is een probleem op te lossen in een specifieke situatie. Daarom zie je regelmatig voorbeelden waar je specifiek tekst moet aanpassen om te krijgen wat je wilt. 

Wil jij leren hoe je complete plugins zelf kunt programmeren inclusief ‘admin’ schermen voor het instellen en de output in de gewenste taal, dan is misschien de cursus ‘Introductiecursus Plugins Programmeren‘ iets voor jou. 

Wil je als ‘full stack’ WordPress programmeur aan de gang gaan, dan biedt WordXPression ook een compleet traject ‘WordPress Developer‘ aan. Dit is een traject wat deels online, deels klassikaal wordt gegeven.

WordPress Developer worden?

Wil je leren hoe je zelf plugins, thema's, shortcodes, widgets, Gutenberg blocks en meer kan maken?
Schrijf je dan in voor de cursus WordPress Developer.

Meer snippets

Het WordPress login logo aanpassen
Vervang het standaard WordPress logo door je eigen logo op het inlogscherm.
Koopsuggesties op basis van eerdere orders toevoegen
Het codefragment in deze snippet maakt onderdeel uit van een wat groter project. In het blogartikel ‘Flexibel...
De presentatie van variabele producten hun prijs verbeteren
Een variabel product wordt in WooCommerce weergegeven als een prijs €100-€250 in plaats van 'vanaf €...
De 'search' functie in je site helemaal uitschakelen
In de meeste gevallen zal je willen dat mensen je website makkelijk kunnen doorzoeken. Maar wat nu als...
De 'Sale' badge in WooCommerce naast de prijs tonen
Wanneer je gebruik maakt van één van de WooCommerce thema’s die op het Storefront framework zijn...
Cache Warmer automatisch starten na Plugin updates
Cache warmer is een dienst om jouw site cache 'warm te houden. Hoe warm je hem opnieuw op, na een update...

Veiligheid voor alles!

Met betrekking tot de code die je hier aantreft een aantal waarschuwingen, voordat je deze code snippets toepast op je eigen website.

  1. Voer de code nooit direct uit op je eigen website, maar probeer deze eerst op een staging omgeving of een locale kopie van je website. 
  2. Voor je de geteste code installeert op je website, maak eerst een back up van je website.
  3. Zorg altijd voor alle zekerheid, dat je voor je een aanpassing live zet, je ook de FTP gegevens van je website bij de hand hebt.  
 
Voel je je onvoldoende vertrouwd met het toepassen van een dergelijke code snippet, bedenk dat je dit ook door een professional kan laten doen. De WordXPression support strippenkaart is een voordelige manier om dit soort aanpassingen te laten doen.
Heeft dit artikel je geholpen je probleem op te lossen?
Deel het met je vrienden via je favoriete social media.

Heb je vragen bij, of opmerkingen over deze code snippet, stel deze bij de commentaren hieronder.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Word je website de baas. Neem vandaag nog contact op!

Contact Informatie

Helaas is telefoonspam een serieus probleem geworden. Omdat ik dagelijks tientallen ‘spam’ en ‘scam’ telefoontjes ontving, heb ik mijn telefoonnummer van de site verwijderd. 

Wanneer je echter het formulier hiernaast invult, en aangeeft dat je per telefoon contact op wilt nemen, maak ik graag een belafspraak met je op een moment wat ons beiden past. En krijg je gewoon het telefoonnummer van WordXPression, zodat je ieder moment kan bellen.

WordXPression 

Aardoliestraat 14-I 7553GT Hengelo

KVK : 75580152 

Stuur een bericht

Mocht je interesse hebben in een nieuwe WordPress of WooCommerce website, verzoek ik je niet onderstaand formulier in te vullen, maar gebruik te maken van het intake/offerte formulier

WordXPression is WP Digital Marketing Geworden

In oktober 2010 begon ik met WordXPression. De naam zei eigenlijk precies wat ik toen deed: dienstverlening rond WordPress. Websites bouwen, aanpassen, onderhouden en later ook steeds meer maatwerk ontwikkelen.

Maar WordXPression is in de loop van de jaren nooit alleen WordPress geweest. Voor klanten voerde ik ook andere werkzaamheden uit. Soms kwamen die rechtstreeks voort uit een WordPress-project, bijvoorbeeld wanneer een website gekoppeld moest worden aan een ander systeem. Soms lag de oorsprong heel ergens anders: in mijn jarenlange ervaring als system integrator uit de periode voordat ik met WordXPression begon.

Daarom besloot ik in 2017 de officiële naam van mijn bedrijf te veranderen in WP Digital Marketing. WordXPression bleef daarbij bestaan als handelsnaam en bleef ook de naam waaronder de website en het grootste deel van mijn dienstverlening naar buiten traden.

De afgelopen jaren is die verhouding steeds verder veranderd. Naast WordPress zijn vooral Laravel, maatwerkapplicaties en systeemintegraties een steeds belangrijker deel van mijn werkzaamheden geworden. WordPress blijft belangrijk, maar het is niet langer een goede paraplu voor alles wat ik doe.

Daarom wordt het tijd om de naam die al sinds 2017 boven het bedrijf staat, ook daadwerkelijk centraal te stellen.

Vanaf 1 oktober gaat WordXPression verder als WP Digital Marketing.