In dit artikel leer je hoe je in WooCommerce alleen gratis verzending toont wanneer beschikbaar en hoe je de titel van verzendmethodes verbergt zodat je checkout overzichtelijk en professioneel blijft.
Probleem
Wanneer je ‘Gratis verzending’ instelt in WooCommerce, blijven ook andere verzendmethodes zichtbaar zoals de standaard verzending. Dat zorgt voor verwarring bij de klant. Daarnaast toont WooCommerce standaard het label van de verzendmethode, wat je misschien liever wilt verbergen voor een rustigere uitstraling.
Oplossing
Door middel van twee filters kun je dit gedrag aanpassen: 1. Toon alleen gratis verzending als die beschikbaar is. 2. Verberg het label van de verzendmethode en laat alleen het bedrag (of de tekst ‘Gratis verzending’) zien. De code Voeg deze code toe aan je child theme in functions.php of gebruik een plugin zoals Code Snippets:
// Hide all shipping methods when free shipping is available
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 100 );
function hide_shipping_when_free_is_available( $rates ) {
$free_shipping = [];
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free_shipping[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free_shipping ) ? $free_shipping : $rates;
}
// Hide shipping method title (show only cost)
add_filter( 'woocommerce_cart_shipping_method_full_label', 'custom_hide_shipping_method_title', 10, 2 );
function custom_hide_shipping_method_title( $label, $method ) {
if ( isset( $method->cost ) && $method->cost > 0 ) {
return wc_price( $method->cost );
} elseif ( isset( $method->cost ) && $method->cost == 0 ) {
return esc_html__( 'Free shipping', 'woocommerce' );
}
return '';
}
Tips
Test je wijzigingen in een staging-omgeving voordat je ze live zet.
Gebruik een child theme of Code Snippets plugin, zodat updates je wijzigingen niet overschrijven.
Samenvatting
Door deze twee aanpassingen toe te passen:
- Voorkom je verwarring in de checkout
- Verbeter je de klantbeleving
- En hou je controle over wat zichtbaar is bij verzendopties.
Veelgestelde vragen
1. Kan ik dit ook per verzendzone instellen? Ja, maar dan moet je extra logica toevoegen op basis van de zone ID of verzendmethode-instellingen.
2. Wat als ik meerdere gratis methodes heb, zoals ‘Gratis verzending’ én ‘Afhalen’? Dan kun je de logica aanpassen zodat je bijvoorbeeld beide laat zien, of alleen ‘Afhalen’ toont bij bepaalde voorwaarden.
3. Is er een plugin voor? Er zijn plugins zoals Flexible Shipping of Table Rate Shipping, maar dit stukje maatwerk met code is lichtgewicht en precies afgestemd op jouw wensen.