Wie blende ich bei kostenlosem Versand alle Versandoptionen im Warenkorb aus (WooCommerce)?
Marc Wagner
August 8, 2023
Unter den WooCommerce-Einstellungen lassen sich unter Versandzonen die gewünschten Versandarten festlegen. Dabei kann man unter bestimmten Bedingungen auch die kostenlose Lieferung anbieten – am häufigsten hier der Mindestbestellwert.

Unschöner weise wird dies allerdings im Warenkorb anschließend als auszuwählende Versandoption angezeigt, anstatt die hier angegebene Pauschale zu ersetzen. Das führt dazu, dass unwissende Kundschaft dies eventuell übersieht und sich anschließend über zu Unrecht gezahlte Versandkosten ärgert.

Leider gibt es im WordPress-Backend unter dem Reiter WooCommerce keinerlei Einstellungsmöglichkeit für dieses Problem. Um es zu lösen, wird in der functions.php deiner Webseite eine Funktion benötigt, die hier Abhilfe schafft.
<?php
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 );Wenn du dieses Code-Snippet in deine functions.php einfügst, wird im Warenkorb nur noch „Kostenlose Lieferung“ angewendet, sobald die Bedingung für den kostenlosen Versand erfüllt wurde. So musst du dir keine Sorgen machen, dass deine Kunden fälschlicherweise Versand zahlen.
So ganz ist es damit allerdings noch nicht getan, denn das Hinzufügen dieses Codes wirft ein neues Problem auf:

Die verschiedenen Benutzerrollen verursachen hier, dass der kostenlose Versand nicht angezeigt wird. Da die kostenlose Lieferung an der Versandzone hängt, benötigt das Backend die Adresse des Nutzers, um die Versandzone richtig zuordnen zu können. Das bedeutet, dass Nutzer mit Account und eingetragener Liefer- bzw. Rechnungsadresse den Versand korrekt angezeigt bekommen. Als Gast Bestellende sehen jedoch nichts, wie im obigen Bild zu sehen ist.
Dies ist glücklicherweise leicht zu lösen, denn in den Versandoptionen unter dem Reiter WooCommerce im Dashboard gibt es eine Einstellung, die genau dies beschreibt. Wenn diese deaktiviert wird, wird der Versand auch für Gäste richtig angezeigt. Die Logik mutmaßt die richtige Versandzone in diesem Fall anhand der IP-Adresse des Nutzers.


Ein Online-Shop mit komplexeren Anforderungen bezüglich Rabatten und Versand kommt leider nicht immer ohne zusätzlichen Code oder Plugins aus. Die hier aufgezeigte Lösung stellt sicher, dass kostenloser Versand sich stets gegenüber anderen Möglichkeiten durchsetzt, wenn dessen Bedingungen erfüllt sind.
Falls es für die Versandzone z.B. Abholung vor Ort gibt, sollte diese natürlich neben jeglicher Art von Versandkosten als Auswahlmöglichkeit bestehen bleiben. In diesem Fall muss der oben genannte Code etwas modifiziert werden:
function v161_woocommerce_hide_shipping_method( $rates ) {
$free = array();
$free_shipping = false;
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free[ $rate_id ] = $rate;
$free_shipping = true;
}
if ( $free_shipping == true && 'my_custom_shipping_method' === $rate->method_id ) {
$free[ $rate_id ] = $rate;
}
}
return ! empty( $free ) ? $free : $rates;
}„‘my_custom_shipping_option‘ === $rate->method_id“ beschreibt hierbei die hier die gewünschte Versandoption, die nun zusätzlich zum kostenlosen Versand weiterhin angezeigt wird.
Wie Forge12 mit solchen Themen arbeitet
Forge12 betreibt und verantwortet umsatzkritische WordPress- und WooCommerce-Systeme im laufenden Betrieb. Bevor wir Systeme übernehmen oder weiterentwickeln, analysieren wir sie vollständig – technisch, strukturell und betrieblich. Das System Audit ist der Einstiegspunkt für jede Zusammenarbeit.
Artikel von:
Marc Wagner
Marc Wagner ist Gründer der Forge12 Interactive GmbH und verantwortlich für Betrieb, Absicherung und Weiterentwicklung umsatzkritischer WordPress- und WooCommerce-Systeme.
Seit über 20 Jahren arbeitet er an Websites, Online-Shops und individuellen Softwarelösungen – vom Mittelstand bis zu Strukturen börsennotierter Unternehmen. Sein Fokus liegt nicht auf Projekten, sondern auf dauerhaftem Betrieb: stabile Systeme, klare Verantwortlichkeiten und technische Entscheidungen mit wirtschaftlicher Konsequenz.
Bei Forge12 begleitet er Unternehmen, die ihre Systeme nicht nur bauen, sondern langfristig sicher betreiben und automatisieren wollen.


Sehr hilfreicher Code-Schnipsel für einen WooCommerce Shop. Danke.