Wanneer je in WooCommerce ‘gratis verzending’ als optie aan wilt bieden, dan werkt dat toch niet helemaal zo als verwacht. Stel je de volgende situatie voor. Tot en met 50 euro moet je klant 5 euro verzendkosten betalen, besteed hij meer dan 50 euro krijgt hij gratis verzending. Zodra jouw klant voor 50 euro en 1 cent bestelt, krijgt hij de keuze, of hij 5 euro verzendkosten wil betalen, of gratis verzending wil.
Wat je klant zal kiezen is natuurlijk duidelijk, maar op dit punt wil je een klant niet lastig vallen met onnodige keuzes.
En met onderstaande code snippet kan je voorkomen, dat jouw klant nog enkele onnodige kliks moet doen
<?php
add_filter( 'woocommerce_package_rates', 'wxp_free_shipping_filter', 100 );
function wxp_free_shipping_filter( $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;
}
In een eerder artikel in mijn blog heb ik deze code ook al besproken, inclusief mogelijke complicaties.
Voor een meer ‘in deep’ bespreking van deze situatie verwijs ik je dan ook graag naar mijn blogpost ‘Gratis verzending in WooCommerce‘. Hier wordt in meer dan alleen de noodzakelijke code ingegaan.