WooCommerce gratis verzending – overige verzendopties verbergen

WooCommerce gratis verzending – overige verzendopties verbergen

WooCommerce is een plugin waarmee je je WordPress website omtovert in een webshop. De standaardopties binnen WooCommerce zijn voldoende om een stevige basis voor je webshop neer te zetten. En voor (bijna) alle functies die niet standaard inbegrepen zijn, is er wel een losse plugin of een snippet beschikbaar.

Een snippet is een stukje code dat je toe kunt voegen aan het functions.php bestand van je thema. Hierdoor kun je op een eenvoudige manier aanpassingen in de werking van een thema of plugin doen. Dit is wel voor gevorderden en over het algemeen raad ik je aan hier niet zelf mee aan de slag te gaan. Helemaal niet als je in de voorgaande tekst minimaal twee termen tegen bent gekomen waar je de betekenis niet van kent 😉

TIP: Lees eerst even alle opties in dit blog door voor je aan de slag gaat!

WooCommerce gratis verzending

Er is één ding binnen WooCommerce dat niet goed werkt en waarvan ik ook niet begrijp dat dit niet standaard opgelost wordt. Bij de verzendopties heb je de mogelijkheid om in te stellen dat verzending gratis is mits er boven een bepaald bedrag besteld wordt. Stel dat ik het volgende ingesteld heb:

  • Verzendkosten zijn € 3,95
  • Verzending bij een bestelling boven de € 50 is gratis

Je zou verwachten dat op het moment dat iemand voor meer dan € 50 bestelt, de gratis verzending automatisch geactiveerd wordt én de verzendkosten van € 3,95 verdwijnen. Dat is dus niet zo en daar gaat het mis. Want hoe verwarrend is het voor een bezoeker als de verzendkosten van € 3,95 standaard aangevinkt staan en hij zelf de optie gratis verzenden aan moet vinken? Deze verwarring kan zomaar een reden zijn voor de bezoeker om alsnog helemaal van de bestelling af te zien. En hoe vervelend is het als de bezoeker dan toch verzendkosten betaald, terwijl dat eigenlijk niet hoeft, en jij die weer terug moet gaan betalen?

Frustratie alom!

woocommerce gratis verzending en verzendkosten
Erg onduidelijk dit, toch?

De eerste stap die je kunt nemen om dit beter te maken is ervoor te zorgen dat de gratis verzending standaard aangevinkt staat. Dit kun je doen bij WooCommerce > Instellingen > Verzendmethoden. Klik op de naam van de zone waar de vaste verzendkosten en gratis verzending in ingesteld zijn. Als je naar beneden scrollt, zie je de verschillende verzendopties staan. Zorg dat gratis verzending boven aan staat door met je muis op de drie streepjes te klikken en de gratis verzending naar boven te slepen. Sla de wijzigingen op.

Zodra een bezoeker nu recht heeft op gratis verzending, wordt deze optie in ieder geval automatisch geselecteerd. Maar we hebben gemerkt dat dat nog steeds voor verwarring bij bezoekers zorgt waardoor ze toch zelf nog de verzendkosten aanklikken. Daarom raden we aan een van onderstaande opties door te voeren zodat ze overige verzendkosten verborgen worden als gratis verzending actief is.

Optie 1: overige verzendkosten verbergen bij gratis verzending m.b.v. een snippet

Met behulp van een snippet kunnen we dit hele frustratiestuk oplossen. De snippet zie je hieronder, werkt bij WooCommerce installaties 3.0 en hoger en zorgt ervoor dat als gratis verzending van toepassing is alle andere verzendopties verborgen worden. Als je weet hoe het werkt en al een childtheme hebt, kun je onderstaande code toevoegen aan het functions.php bestand van je childtheme. Als je niet weet wat een childtheme is of er geen een hebt, kun je gebruik maken van de plugin Code Snippets.

/**
 * Hide shipping rates when free shipping is available.
 * Updated to support WooCommerce 2.6 Shipping Zones.
 *
 * @param array $rates Array of rates found for the package.
 * @return array
 */
function my_hide_shipping_when_free_is_available( $rates ) {
	$free = array();
	foreach ( $rates as $rate_id => $rate ) {
		if ( 'free_shipping' === $rate->method_id ) {
			$free[ $rate_id ] = $rate;
			break;
		}
	}
	return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );

Het is ook mogelijk om niet alle verzendopties te verwijderen, maar alleen de betaalde variant. Naast gratis verzending blijft dan dus ook de optie om af te halen beschikbaar. Als je daar naar op zoekt bent, kun je onderstaande snippet gebruiken.

/**
 * Hide shipping rates when free shipping is available, but keep "Local pickup" 
 * Updated to support WooCommerce 2.6 Shipping Zones
 */

function hide_shipping_when_free_is_available( $rates, $package ) {
	$new_rates = array();
	foreach ( $rates as $rate_id => $rate ) {
		// Only modify rates if free_shipping is present.
		if ( 'free_shipping' === $rate->method_id ) {
			$new_rates[ $rate_id ] = $rate;
			break;
		}
	}

	if ( ! empty( $new_rates ) ) {
		//Save local pickup if it's present.
		foreach ( $rates as $rate_id => $rate ) {
			if ('local_pickup' === $rate->method_id ) {
				$new_rates[ $rate_id ] = $rate;
				break;
			}
		}
		return $new_rates;
	}

	return $rates;
}

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

Beide snippets zijn afkomstig uit de developer documentatie van WooCommerce. Mocht de snippet niet direct werken, ga dan naar WooCommerce > Status > Tools en klik achter WC Transients op “Transients wissen”.

Snippet toevoegen met behulp van Code Snippets

Stap 1: Ga naar WooCommerce > Status > Tools en klik achter WC Transients op “Transients wissen”.

Stap 2: Ga naar Plugins > Nieuwe plugin en installeer en activeer de plugin Code Snippets

Plugin code snippets

Stap 3: In het dashboard menu is een nieuwe optie verschenen, Snippets. Klik daar op en kies “Nieuwe toevoegen”.

Stap 4: Vul als titel bijvoorbeeld Gratis verzending WooCommerce in. Kopieer bovenstaande code en plak deze in code veld. Klik vervolgens op “Wijzigingen opslaan en activeren”.

Werkt de code niet direct? Herhaal stap 1.

Optie 2: overige verzendkosten verbergen bij gratis verzending m.b.v. een plugin

Vind je bovenstaande stappen echt heel spannend? Dan kun je het beste de plugin WC Hide Shipping Methods gebruiken. Deze plugin is ook de beste keuze als je naast de gratis-verzenden-optie ook nog de afhalen-optie wilt laten zien.

Stap 1: Ga naar WooCommerce > Status > Tools en klik achter WC Transients op “Transients wissen”.

Stap 2: Ga naar Plugins > Nieuwe plugin en installeer en activeer de plugin WC Hide Shipping Methods

Stap 3: Ga naar WooCommerce > Instellingen > Verzendmethoden > Verzendopties. Kies voor 

woocommerce gratis verzending en afhalen

Zo lang deze optie niet standaard in WooCommerce opgenomen wordt, kun je deze twee opties proberen om het ‘probleem’ om te lossen.

Succes met (gratis) verzenden!

Hoe is het met het onderhoud van jouw website gesteld?
Enig idee waar je kunt zien hoeveel updates er zijn en waarom het belangrijk is dat je die uitvoert? Nee? Lees dan nog even verder in deze blog 🙂

Google-Beoordeling
4.9
Gebaseerd op 28 recensies
js_loader