Die Kassenfelder in WooCommerce bearbeiten
Es muss nicht immer gleich ein Plug-in sein. Lasst uns die Kassenfelder mit Action und Filter bearbeiter.
Zwingende Voraussetzung dafür ist, dass ihr ein Child Theme aktiviert habt. Ohne Child Theme handelt ihr euch dieselbe Arbeit immer und immer wieder ein und müsst alles wiederholen.
Felder optional machen
Pflichtfelder könnt ihr zu optionalen Feldern machen. Hier ein Beispiel:
Hier habe ich aus dem Vornamen-Pflichtfeld ein optionales Feld gemacht. Der Vorname muss also nicht bei der Bestellung angegeben werden. Erreicht wird das mit folgendem Filter:
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );
function custom_override_default_address_fields( $address_fields ) {
$address_fields['first_name']['required'] = false;
return $address_fields;
}
Genau dieses Code Snippet fügt ihr in eure functions.php via ftp Zugang ein, oder ihr habt die Möglichkeit über das WordPress Backend auf den Theme-Datei-Editor zuzugreifen. Design -> Theme-Datei-Editor
Alle anderen Adressfelder könnt ihr ebenfalls optional machen. Benutzt dazu bitte folgende Begriffe:
- country – Land / Region
- first_name – Vorname
- last_name – Nachname
- company – Firmenname
- address_1 – Straßename und Hausnummer
- address_2 – Wohnung, Suite, Zimmer usw.
- city – Ort / Stadt
- state – Bundesland
- postcode – Postleitzahl
Wichtig
Achtet bitte darauf, dass ihr die Begriffe nicht alleinstehend in die eckigen Klammern schreibt, sondern immer zwischen einzelne Anführungsstriche setzt.
Beachtet außerdem, dass ihr nicht mehrere Funktionen hintereinander scheiben könnt. Zum Beispiel [‚first_name‘][‚last_name‘] funktioniert nicht. Ihr müsst für jedes Feld einen separaten Filter erstellen.
Felder entfernen
Felder zu entfernen ist wahrscheinlich der häufigste Grund, um die Kassenseite zu bearbeiten. WooCommerce gibt im Checkout eine ziemlich hohe Anzahl an Feldern vor, die für einige Shopbetreiber nicht unbedingt höchste Priorität haben. Schauen wir uns daher an, wie Felder entfernt werden können.
Wie ihr seht, ist die Möglichkeit eine Anmerkung zu hinterlassen verschwunden. Erreicht wird das mit:
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
unset($fields['order']['order_comments']);
return $fields;
}
Um den Satz „Zusätzliche Informationen“ zu entfernen, müsst ihr die CSS Klasse suchen. Im Browser auf F12 klicken und dann das Element untersuchen.
Im Customizer unter Zusätzliches CSS fügt ihr folgendes ein:
.woocommerce-additional-fields {
display:none;
}
Felder Rechnungsadresse entfernen
Nutzt dazu bitte [‚billing‘] in der function.
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
unset($fields['billing']['dein_feld']);
return $fields;
}
Folgende Felder stehen euch zur Verfügung:
billing_first_name
billing_last_name
billing_company
billing_address_1
billing_address_2
billing_city
billing_postcode
billing_country
billing_state
billing_email
billing_phone
Wichtig
Beachtet bitte, dass es sich dabei um die Felder der Rechnungsadresse handelt. Nicht um die Standard-Adressfelder der Rechnungsdetails.
Felder Lieferadresse entfernen
Nutzt dazu bitte [’shipping‘] in der function.
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
unset($fields['shipping']['dein_feld']);
return $fields;
}
Folgende Felder stehen euch zur Verfügung:
shipping_first_name
shipping_last_name
shipping_company
shipping_address_1
shipping_address_2
shipping_city
shipping_postcode
shipping_country
shipping_state
Felder umbennen
Wenn euch die Beschriftung der Felder nicht gefällt, könnt ihr sie auch umbennen. Dazu benötigen wir [‚placeholder‘] <- für das, was im Feld steht; und [‚label‘] <- für das, was über dem Feld steht.
Um die Felder der Lieferadresse zu ändern benötigen wir:
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
$fields['shipping']['shipping_first_name']['placeholder'] = 'Ein anderer Platzhalter';
$fields['shipping']['shipping_first_name']['label'] = 'Ein neues Label';
return $fields;
}
Wichtig
Achtet an dieser Stelle bitte auf die richtige Schreibweise.
- Für die Lieferadresse benötigt ihr: [’shipping‘][’shipping_first_name‘][‚label‘] = ‚Euer Label‘,
- Für die Rechnungsadresse : [‚billing‘][‚billing_first_name‘][‚label‘] = ‚Euer Label‘,
- Für die zusätzlichen Felder: [‚order‘][‚order_comments‘][‚label‘] = ‚Euer Label‘;
Für die Standard-Adressfelder gilt folgendes:
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );
function custom_override_default_address_fields( $address_fields ) {
$address_fields['first_name']['label'] = 'Euer Label';
return $address_fields;
}
Unbedingt beachten
Bitte macht, wenn ihr euch nicht sicher seid, was ihr tut und was ihr verändert, keinerlei Änderungen im Live-Betrieb. Unter Umständen, manchmal reicht ein falsches Komma, schrottet ihr nicht nur euren Shop, sondern gleich die ganze Seite. Natürlich könnt ihr das schnell beheben, indem ihr das Snippet wieder löscht. Dennoch arbeitet super konzentriert an eurer Seite, wenn ihr solch tiefgreifende Änderungen vornehmt.