wooline

vrijdag 6 december 2013

Instellen van gratis verzending in WooCommerce

Je kunt je verzendkosten op veel manieren aanpakken. Je kunt een vaste verzendkost instellen, inclusief opties voor bijvoorbeeld expresslevering. Maar een tactiek die door veel eigenaars van een webwinkel wordt toegepast is het aanbieden van gratis verzenden vanaf een bepaald bedrag.
Je klanten zullen geneigd zijn net dat tikkeltje extra te kopen om toch maar aan dat bedrag te raken om gratis verzending te bekomen.

Gratis verzending instellen

In het beheergedeelte van Wordpress gaan we naar WooCommerce >> Instellingen >> Tabblad verzending >> Gratis verzending.
  • Inschakelen/Uitschakelen : hier kun je de optie in- of uitschakelen
  • Methodetitel : hier kun je de naam bepalen die je aan je verzending wil geven. Dit is wat klanten zien bij het afrekenen van hun producten.
  • Methode beschikbaar : hier kan je bepalen wie recht heeft op de optie van gratis verzending. Zo zou je de optie bvb kunnen beperken tot het binnenland. Zorg er dan wel voor dat de verzendmethode van Internationale Bezorging correct is ingesteld.
  • Gratis verzending verplicht : Hier kun je de voorwaarden instellen om het recht op gratis verzending verzenden te bekomen. Een coupon behoort ook tot de mogelijkheden.
  • Minimaal bestelbedrag : hier kun je het bedrag instellen vanaf dewelke deze optie wordt ingeschakeld.
Als we nu gaan testen in onze webshop zien we volgende situatie in ons afrekenproces :
We hebben wat we wilden : de optie dat de klant gratis verzending krijgt. Maar... het is wel aan onze klant om deze optie zelf te kiezen. En eerlijk is eerlijk : dit kan echt niet. Dit zou automatisch moeten gaan. Hier gaat WooCommerce echt in de fout. Als er gratis verzending geldig is, dan zouden de andere verzendmethodes moeten worden verwijderd.

Hoe lossen we dit op?

Er zijn vier methodes :
  1. De gratis plugin "Advanced free Shipping"
  2. De officiële plugin van Woothemes
  3. Een plugin van derden
  4. De basiscode veranderen
De plugin Advanced Free Shipping
Bij de verzameling Wordpress-plugins is er de plugin "Advanced Free Shipping" te vinden. Deze gratis plugin lost dit probleem op.
  • Download de plugin op de site van Wordpress en bewaar het zip-bestand op je computer.
  • In Wordpress ga je naar Plugins >> Nieuwe plugin.
  • Kies de optie Uploaden.
  • Blader naar het bewuste zip-bestand en kies Nu installeren.
  • Wanneer Wordpress klaar is kun je ook meteen Activeren.
Met dank aan Joost Van Kempen voor het melden !
De Table Rate Shipping plugin van WooThemes
De makers van WooCommerce (WooThemes) hebben hiervoor een plugin die het probleem in no time kan oplossen. Maar deze kost je wel geld. En eigenlijk best veel : $199. En als beginnende eigenaar van een webshop zit je daar wellicht niet op te wachten. Als je deze plugin hebt gekocht, kan je hier de documentatie vinden om deze correct in te stellen.

Table Rate Shipping op Codecanyon
CodeCanyon is soms echt een bron voor schitterende plugins voor een fractie van de prijs t.o.v. de officiële extensies van WooCommerce. En ook hier is dit het geval. Je kunt er de Table Rate Shipping plugin downloaden voor $19.00. Ook de plugin Distance Rate Shipping zou het kunnen oplossen.

De code veranderen van functions.php
Deze methode is de goedkoopste, maar houdt ook het meest risico's in. Maar als je de onderstaande werkwijze volgt, kun je het proberen zonder risico's. In het kort komt het erop neer dat we de code gaan veranderen van de basisbestanden. Om teleurstellingen te vermijden moeten we dus eerst een backup maken van het bestand functions.php in de map van het thema dat we momenteel gebruiken. In dit geval maken we gebruik van het thema "twentythirteen".

Backup maken van functions.php
We starten FileZilla en navigeren in ons geval naar :
public_html/wp-content/themes/twentythirteen
In de map gaan we op zoek naar het bestand functions.php
Door een klik op de rechtermuisknop of door te slepen naar de linkerkantkant van het scherm kunnen we het bestand lokaal op onze computer zetten in de map die we wensen. Eenmaal dit gedaan is zijn we safe en hebben we een kopie van het bestand op onze computer staan. Als er iets misgaat, kunnen we dit gebruiken om terug op onze website te zetten.

functions.php aanpassen
Nu gaan we het bestand op onze website (dus aan de rechterzijde van FileZilla) bekijken en veranderen. Dit doen we door opnieuw te klikken met de rechter muisknop op het bestand en kiezen voor Bekijken / Bewerken. Onze teksteditor zal automatisch openen.
Nu moet je onderstaande code kopiëren en plakken helemaal onderaan het bestand.

add_filter( 'woocommerce_available_shipping_methods', 'remove_standard_shippings_when_free' , 10, 1 );
 
function remove_standard_shippings_when_free( $available_methods ) {
 
    //get cart total from session
    $total = 0;
    $session_cart = $woocommerce->session->cart;
    if(count($session_cart) > 0) {
        foreach($session_cart as $cart_product)
            $total = $total + $cart_product['line_subtotal'];
    }
 
    if( isset( $available_methods['free_shipping'] ) ) {
        // remove all standard shipping options
        unset( $available_methods['flat_rate'] );
        unset( $available_methods['international_delivery'] );
        unset( $available_methods['local_delivery'] );
        unset( $available_methods['local_pickup'] );
    }
 
 return $available_methods;
} 
Nadat je het stukje code in je bestand hebt geplakt kun je het bestand sluiten. Het is belangrijk dat je de veranderingen opslaat uiteraard.
Ook FileZilla zal ons verwittigen. We hebben namelijk een bestand veranderd dat we eerder gedownload hebben. Ook hier kiezen we ervoor dat FileZilla ervoor zorgt dat ons 'nieuwe' bestand op onze webruimte komt.
Nu gaan we onze veranderingen even testen in onze webshop :
Geen spoor meer van onze vaste verzendkost : dus gelukt!

8 opmerkingen:

  1. Heel erg bedankt voor deze code. Het werkt maar nu heb ik het probleem dat ik nier meer verder kan in het bestelproces :) wat gaat er nunog mis?

    BeantwoordenVerwijderen
    Reacties
    1. De code werkt blijkbaar niet zomaar bij elk thema dat je gebruikt. Welk thema gebruik je?

      Verwijderen
  2. Er is inmiddels ook een gratis plugin beschikbaar: https://wordpress.org/support/view/plugin-reviews/woocommerce-advanced-free-shipping?filter=5

    BeantwoordenVerwijderen
  3. Hoi Mike, Bovenstaande verandering in de function.php werkt ook niet goed in het thema WPShopper. Krijg allerlei Notice meldingen op de website.
    Ik ga de plugin van Joost toepassen.

    BeantwoordenVerwijderen
    Reacties
    1. Laat eens weten wat je vindt van die plugin. Ikzelf heb er wel goede ervaringen mee.

      Verwijderen
    2. De plug-in werkt prima. Ik heb het min. bedrag ingesteld op €75. Blijft het totaal bedrag hieronder dan staat de verzendkosten genoteerd komen we er boven dan komt er 'Gratis verzending' te staan. Exact wat ik wil.

      Nu nog de juiste instelling(en) uitzoeken voor buitenlandse verzending. Dit moet op dezelfde wijze gaan als bij 'Gratis verzenden' wanneer ik Duitsland / België kies. Dit gaat nu (nog) niet goed.

      Verwijderen
    3. Buitenlandse verzending is nu ook in orde en werkt ook goed.

      Verwijderen