
🚫 WooCommerce-checkout-index stört kunden: 4 wege, die verifizierung zu entfernen
Warum die Postleitzahlvalidierung eine unnötige Hürde darstellt
WooCommerce verlangt das Postleitzahlfeld standardmäßig und validiert es. Die Realität sieht jedoch so aus: Dutzende Länder in Afrika, Mittelamerika und Ozeanien verwenden überhaupt keine Postleitzahlen. Ein Käufer aus Kenia oder Jamaika gibt irgendwelche Ziffern ein, erhält eine Fehlermeldung und springt ab.

Zusätzliche Felder und Fehlermeldungen auf der Checkout-Seite schaden direkt der Conversion. Laut dem Baymard Institute haben 17% der US-Käufer einen Checkout speziell deshalb abgebrochen, weil er zu lang oder zu kompliziert war. Ein oder zwei überflüssige Felder zu entfernen, ist der günstigste Weg, den Umsatz ohne Werbebudget zu steigern.
Nachfolgend vier Wege, die Validierung zu deaktivieren: vom vollständigen Entfernen des Feldes bis zur bloßen Umbenennung. Wählen Sie je nach Ihrer Zielgruppe.
💡 Kurzübersicht:
- Entfernen Sie das Postleitzahlfeld vollständig via
unset(), für Shops, die es gar nicht benötigen - Machen Sie die Postleitzahl optional, für Shops mit gemischter geografischer Zielgruppe
- Entfernen Sie unnötige Felder aus dem Rechnungsformular, falls die Postleitzahl nur ein Teil des Problems ist
- Ändern Sie die Feldbezeichnung in etwas, das der Nutzer versteht, minimaler Eingriff
- Ziehen Sie Plugins in Betracht, wenn Sie keinen Code anfassen möchten
Methode 1: Postleitzahlfeld vollständig aus dem Checkout entfernen
Die radikalste und sauberste Methode. Der Hook woocommerce_checkout_fields gibt volle Kontrolle über alle Checkout-Felder: Nehmen Sie das Array, schneiden Sie billing_postcode heraus und geben Sie es zurück.
Fügen Sie den Code in die functions.php Ihres Child-Themes ein:
1 /** 2 * Remove the postal code field (billing_postcode) from checkout. 3 */ 4 add_filter( 'woocommerce_checkout_fields', 'quadlayers_remove_billing_postcode_checkout' ); 5 function quadlayers_remove_billing_postcode_checkout( $fields ) { 6 unset( $fields['billing']['billing_postcode'] ); 7 return $fields; 8 }

Was hier passiert. Der Hook woocommerce_checkout_fields erhält das gesamte Checkout-Felder-Array: Rechnung, Versand und Bestellung. Die Funktion unset() entfernt den spezifischen Schlüssel billing_postcode aus dem billing-Bereich. Das Array wird ohne das Postleitzahlfeld an WooCommerce zurückgegeben, sodass es sowohl aus dem Formular als auch aus der Validierung verschwindet.
Falls Ihre Zielgruppe jedoch gemischt ist und einige Kunden eine Postleitzahl benötigen, sehen Sie sich Methode 2 an.
Methode 2: Postleitzahl optional machen
Anstatt das Feld zu entfernen, können Sie einfach das Pflichtflag deaktivieren. Das Feld bleibt auf der Seite, aber der Käufer kann es ohne Fehlermeldung überspringen.
Hier verwenden wir den Filter woocommerce_default_address_fields, der die Standardeinstellungen für alle Adressfelder handhabt:
1 /** 2 * Make the postal code field optional. 3 */ 4 add_filter( 'woocommerce_default_address_fields', 'quadlayers_optional_postcode_checkout' ); 5 function quadlayers_optional_postcode_checkout( $p_fields ) { 6 $p_fields['postcode']['required'] = false; 7 return $p_fields; 8 }

Der Unterschied zur ersten Methode liegt im Hook. woocommerce_default_address_fields arbeitet eine Ebene tiefer: Er setzt die Eigenschaften der Felder selbst (Label, Platzhalter, Pflichtfeld), bevor sie in den Rechnungs- und Versandbereichen landen. Deshalb lautet der Schlüssel hier einfach postcode, ohne das Präfix billing_.
Geeignet für Shops, die in Länder mit und ohne Postleitzahlen verkaufen.
Methode 3: Unnötige Felder aus dem Rechnungsformular entfernen
Oft ist das Problem breiter als nur die Postleitzahl. Die Felder Firma, Adresszusatz, Stadt und Bundesland sind ebenfalls nicht immer nötig: Jedes einzelne erhöht die Reibung im Checkout.
Derselbe Hook woocommerce_checkout_fields entfernt jedes Feld anhand seiner Kennung. Hier die vollständige Liste der verfügbaren Schlüssel für den Rechnungsbereich:
1 unset( $fields['billing']['billing_company'] ); 2 unset( $fields['billing']['billing_address_2'] ); 3 unset( $fields['billing']['billing_city'] ); 4 unset( $fields['billing']['billing_state'] ); 5 unset( $fields['billing']['billing_phone'] );
Die Bezeichnungen sind selbsterklärend. Das Präfix billing_ zeigt an, dass das Feld zum Rechnungsformular gehört. Um beispielsweise company und address_2 zusammen mit der Postleitzahl zu entfernen:
1 /** 2 * Remove company, address_2 and postal code from checkout. 3 */ 4 add_filter( 'woocommerce_checkout_fields', 'quadlayers_remove_billing_fields' ); 5 function quadlayers_remove_billing_fields( $fields ) { 6 unset( $fields['billing']['billing_company'] ); 7 unset( $fields['billing']['billing_address_2'] ); 8 unset( $fields['billing']['billing_postcode'] ); 9 return $fields; 10 }

Mehrere unset()-Aufrufe koexistieren problemlos innerhalb einer einzigen Funktion: Listen Sie einfach die Schlüssel auf, die Sie ausblenden möchten.
Methode 4: Ein Feld in etwas umbenennen, das der Nutzer versteht
Minimaler Eingriff mit maximaler Wirkung. Sie rühren die Validierung nicht an, Sie ändern lediglich die kryptische Beschriftung „Postleitzahl / ZIP" in etwas, das Ihre Zielgruppe versteht. Zum Beispiel „Stadtteil" oder „Postleitzahl (falls vorhanden)".
Wir nutzen den gettext-Hook, denselben, den WordPress und WooCommerce für die Übersetzung der Oberfläche verwenden:
1 /** 2 * Change checkout field labels via gettext. 3 */ 4 add_filter( 'gettext', 'quadlayers_billing_field_strings', 20, 3 ); 5 function quadlayers_billing_field_strings( $translated_text, $text, $domain ) { 6 switch ( $translated_text ) { 7 case 'Postcode / ZIP': 8 $translated_text = __( 'Area code', 'woocommerce' ); 9 break; 10 } 11 return $translated_text; 12 }
Wenn Sie mehrere Felder umbenennen möchten, fügen Sie Fälle innerhalb des switch hinzu:
1 function quadlayers_billing_field_strings( $translated_text, $text, $domain ) { 2 switch ( $translated_text ) { 3 case 'Billing details': 4 $translated_text = __( 'Order information', 'woocommerce' ); 5 break; 6 case 'Ship to a different address?': 7 $translated_text = __( 'Send to other location please', 'woocommerce' ); 8 break; 9 case 'Company name': 10 $translated_text = __( 'Company', 'woocommerce' ); 11 break; 12 case 'Postcode / ZIP': 13 $translated_text = __( 'Area code', 'woocommerce' ); 14 break; 15 } 16 return $translated_text; 17 }

Im obigen Screenshot sehen Sie das Ergebnis der Kombination verschiedener Ansätze: Mehrere Felder sind ausgeblendet, das Postleitzahlfeld ist in „Ortsvorwahl" umbenannt und optional gemacht, die Überschriften der Abschnitte Rechnung und Versand sind durch eigene ersetzt. Der Checkout wurde kürzer und übersichtlicher, ganz ohne Plugins.
Plugins zur Verwaltung der Checkout-Felder
Wenn Sie die functions.php nicht anfassen möchten, gibt es fertige Werkzeuge. Sehen wir uns zwei kostenlose Plugins an, die das Problem ohne eine einzige Codezeile lösen.
Checkout field manager for WooCommerce
Checkout Field Manager, einer der beliebtesten Editoren für Checkout-Felder. Er ermöglicht es Ihnen, Felder in den Bereichen Rechnung, Versand und Zusätzlich hinzuzufügen, zu entfernen und neu anzuordnen, und zwar über eine visuelle Oberfläche.

Das Plugin ist kostenlos; die Basisversion deckt die wichtigsten Szenarien ab: Feld ausblenden, optional machen, umbenennen. Für bedingte Logik (Feld nur für ein bestimmtes Land anzeigen) und zusätzliche Feldtypen gibt es eine Premium-Version.
Direct Checkout for WooCommerce
Direct Checkout for WooCommerce (früher „WooCommerce Direct Checkout") löst ein umfassenderes Problem: Es vereinfacht den gesamten Checkout-Prozess. Neben dem Entfernen von Feldern kann es: den Warenkorb überspringen und den Kunden direkt zum Checkout führen, den Text der Schaltfläche „In den Warenkorb" ändern, AJAX-Add-to-Cart auf Produktseiten hinzufügen.

Beide Plugins werden regelmäßig aktualisiert und sind mit den aktuellen Versionen von WordPress und WooCommerce kompatibel.
⁉️🤔 Häufig gestellte Fragen
Kann ich die Validierung nur für bestimmte Länder deaktivieren?
Ja. Sie können die Prüfung innerhalb des Filters
woocommerce_checkout_fieldsanWC()->customer->get_billing_country()knüpfen undunset()oderrequired = falsenur für die Liste der Länder ohne Postleitzahlen anwenden. So sehen Käufer aus Deutschland oder den USA weiterhin ein Pflichtfeld, während Kunden aus Kenia keines sehen.
Geht der Versand kaputt, wenn ich die Postleitzahl-Validierung deaktiviere?
Das hängt vom Versanddienst ab. Postdienste wie USPS oder Royal Mail nutzen die Postleitzahl zur Tarifberechnung; für sie ist es besser, das Feld als Pflichtfeld zu belassen oder zumindest sichtbar zu halten. Wenn Sie digitale Güter verkaufen oder einen Kurierdienst innerhalb einer Stadt nutzen, können Sie die Postleitzahl bedenkenlos entfernen. Testen Sie die Kostenberechnung für jede Versandzone nach den Änderungen.
Der Code funktioniert nicht, das Postleitzahlfeld ist immer noch da. Woran liegt das?
Drei häufige Ursachen. Erstens: Cache. Leeren Sie den Cache Ihrer Website und Ihres Browsers; öffnen Sie den Checkout nach der Bearbeitung der
functions.phpim Inkognito-Modus. Zweitens: Ein anderes Plugin oder Theme überschreibt das Feld später als Ihr Filter. Versuchen Sie, die Hook-Priorität zu erhöhen:add_filter( 'woocommerce_checkout_fields', '...', 99 ). Drittens: Sie bearbeiten die falschefunctions.php. Der Code muss in der Datei des aktiven (Child-)Themes stehen.
Wie entferne ich das Postleitzahlfeld, ohne die functions.php zu bearbeiten?
Installieren Sie Checkout field manager for WooCommerce; damit können Sie beliebige Felder über das Admin-Panel deaktivieren. Oder nutzen Sie das Plugin Code Snippets: Fügen Sie den PHP-Code aus Methode 1 als Snippet ein und aktivieren Sie es. Beide Optionen sind sicherer als die direkte Bearbeitung der
functions.phpund gehen bei einem Theme-Update nicht verloren.
Was tun, wenn die Postleitzahl-Validierung deaktiviert ist, WooCommerce aber trotzdem einen Fehler ausgibt?
Höchstwahrscheinlich wird der Fehler nicht vom WooCommerce-Kern, sondern von einem Drittanbieter-Plugin erzeugt, etwa einem Versanddienst-Plugin oder einem Adressvalidator. Deaktivieren Sie Versand- und Adressverifizierungs-Plugins nacheinander, um den Verursacher zu finden. Prüfen Sie auch, ob die Validierung im Theme auf JavaScript-Ebene gesetzt ist; manchmal duplizieren Entwickler die Prüfung im Frontend.
Ein praktisches Beispiel aus dem Video
Sehen Sie sich ein Live-Beispiel für die Konfiguration von Checkout-Feldern an, vom Code bis zum Ergebnis im Frontend:
Code oder Plugin: Was ist die richtige Wahl?
Wenn Sie nur ein oder zwei Felder entfernen müssen und mit dem Theme-Editor vertraut sind, genügen vier Zeilen PHP aus Methode 1 oder 2. Das ist leichtgewichtig und fügt der Website keinen zusätzlichen Code hinzu.
Haben Sie viele Felder zu konfigurieren, experimentieren Sie häufig mit dem Checkout oder möchten Sie die functions.php lieber nicht anfassen, greifen Sie zu Checkout Field Manager for WooCommerce. Das Plugin ist kostenlos und gibt Ihnen visuelle Kontrolle über alle Felder, ohne dass ein Tippfehler im Code die Website lahmlegen kann.
Für eine umfassende Checkout-Optimierung (Überspringen des Warenkorbs, AJAX-Buttons, individuelle Beschriftungen) deckt Direct Checkout for WooCommerce alles in einem einzigen Plugin ab.
Die goldene Regel: Führen Sie nach jeder Änderung einen Testauftrag von Anfang bis Ende durch. Fünf Minuten Testen ersparen Ihnen Stunden, in denen Sie Beschwerden echter Kunden sortieren müssen.


