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

Een redirect na aankoop van een specifiek product
Hoe zorg je ervoor, dat na aankoop van een product iemand naar een specifieke pagina gaat?
De webwinkel is op zondag gesloten
Het voordeel van een webshop is dat hij 24/7 open is. Maar wat nu, wanneer je op zon- en feestdagen principieel...
Shortcodes voor het tonen en verbergen van content
Hoe maak ik een shortcode waarmee ik content van mijn posts kan verbergen?
Laat zien wanneer een product al in de winkelwagen is
Laat je klant zien, dat een product al in de winkelwagen is geplaatst.
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...
Een veld toevoegen in WooCommerce bestellingen
Hoe voeg je extra velden toe aan je WooCommerce checkout procedure?

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 Information

WordXPression 

Bezoekadres
Eperweg 135 (op afspraak)
8072 PL Nunspeet

Postadres
Aardoliestraat 14-I
7553GT Hengelo

06-10449807 (van 9:00 tot 17:00 van ma-vr)

KVK : 75580152 

Social media
Stuur een bericht

Introductiecursus Plugins Programmeren

wordpress coding Can use php code as background in html

Ontdek de wereld van WordPress Plugin ontwikkeling met WordXPression's introductiecursus