Verberg verzendkost als Gratis Verzending beschikbaar is in WooCommerce

In WooCommerce kan je perfect verzendkosten instellen, alsook een gratis verzending vanaf een bepaald bedrag. Maar WooCommerce toont altijd alle verzend mogelijkheden. Ja, ook als gratis verzending beschikbaar is.

Voor een koper kan dit heel bizar overkomen.

De vraag is dan:

  • Welke verzend mogelijkheid is de beste?
  • En is er een verschil tussen de gratis of betalende verzendkost.

Zelfs conversie-specialist Karl Gilis ergert zich blauw aan zulke zaken via een Linkedin-bericht. Karl wordt aanzien als de top-3 in z’n vak, wereldwijd.

Wat Karl zegt: er is werk aan de winkel.

Maar waarom toont WooCommerce dan verzendkosten als gratis verzending beschikbaar is?

Een hele goeie vraag met recht van rede. Het zou logisch zijn dat WooCommerce effectief alle verzendingen verbergt als “gratis verzending” beschikbaar is. Maar WooCommerce wil alle keuze’s open houden voor de webshop eigenaars. Er zijn webshops die meerdere verzendkosten hebben, of maatwerk verzendkost berekeningen hebben. In sommige gevallen moeten verzendkosten ook daadwerkelijk getoond worden, ook al is “gratis verzending” beschikbaar. Bijvoorbeeld: als je toch betalende verzendingen wil aanbieden met bijvoorbeeld een verzekering.

WooCommerce geeft de vrijheid aan de gebruiker, dus de webshop eigenaar.
Dus denk er voortaan aan als je een nieuwe woocommerce webshop laat bouwen of zelf bouwt; denk aan die gratis/betalende verzendcombinatie.

Gelukkig is er wel een heel makkelijke oplossing.
WooCommerce heeft hier zelfs een documentatie pagina over geschreven, zie deze pagina.

2 oplossingen: plugin of code

Bij Woofers zijn we als WooCommerce specialisten eerder fan van code. Hoe minder extra plugins we moeten installeren, hoe beter. Maar niet iedereen is thuis in WooCommerce code, dus daarom is er volgende plugin:

Plugin: https://wordpress.org/plugins/wc-hide-shipping-methods/

Bij deze plugin zie je ook de melding:

Dat betekent dat de plugin heel weinig geüpdate wordt. In de meeste gevallen is dat geen goed teken. Maar in deze optiek moet je hiervan niet wakker liggen. De plugin is best veilig, de plugin code hoeft zeker niet om de zoveel versies bijgewerkt worden. Het werkt prima, daar mag je van uit gaan.

Of voor de coders: je kan code toevoegen via je functions.php bestand:

PHP
/**
 * 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 );

Opgelet: bovenstaande code laat énkel de gratis verzending zien. Maar wat als je ook “afhaal” aanbiedt. Afhaal wordt ook aanzien als een “verzend methode” door WooCommerce. In vakjargon ook wel “Local Pickup” genoemd.

Als je “gratis verzending” en “afhaal” wil laten zien, dan gebruik je deze code:

PHP
/**
 * 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 );

Alles even mooi uitgelegd in een video



Over de auteur: Dave Loodts

Full-time creatieve maker van doelgerichte websites en webshops sinds 2006 en gek van WordPress en WooCommerce. Actief lid in WordPress Community sinds 2014. Mijn grootste voldoening: ondernemers die succesvol aan de slag gaan met m'n WooCommerce tips.

Volg me op: