Angepasste Woocommerce-Checkout-Felder, die nach dem Laden der Seite auf den Standard zurückgesetzt werden

Lesezeit: 3 Minuten

Benutzer-Avatar
JK

Ich habe das Label „shipping_country“ meiner Woocommerce-Checkout-Seite mit diesem Code erfolgreich umbenannt:

add_filter( 'woocommerce_checkout_fields', 'rename_woo_checkout_fields' );
function rename_woo_checkout_fields( $fields ) {
    $fields['shipping']['shipping_country']['label'] = 'Country'; 
    return $fields;
}

Aber wenn ich versuche, zusätzliche Beschriftungen und Platzhalter hinzuzufügen, die ich ändern möchte, funktioniert es nicht. Nun, tatsächlich passiert etwas Seltsames. Wenn ich die Seite aktualisiere, um die Änderungen zu übernehmen, scheint es zu funktionieren, aber die Seite wird immer noch geladen und kehrt nach einer Sekunde zum ursprünglichen Zustand zurück. (Das Feld shipping_country funktioniert immer noch, aber alle anderen Felder, die ich oben hinzufüge, passieren.

Ich habe versucht, die Reihenfolge zu ändern, aber es spielt keine Rolle.

Die Felder, die ich zu ändern versuche, die nicht funktionieren, sind:

    $fields['billing']['billing_address_1']['label'] = 'Address';
    $fields['billing']['billing_address_1']['placeholder'] = 'Street and house number';
    $fields['billing']['billing_city']['label'] = 'City';
    $fields['billing']['billing_postcode']['label'] = 'Postcode';
    $fields['shipping']['shipping_postcode']['label'] = 'Postcode';
    $fields['shipping']['shipping_city']['label'] = 'City';
    $fields['shipping']['shipping_city']['placeholder'] = 'City';
    $fields['shipping']['shipping_address_1']['label'] = 'Address';
    $fields['shipping']['shipping_address_1']['placeholder'] = 'Street and house number';
    $fields['order']['order_comments']['placeholder'] = 'Special notes';

Was könnte die Seite dazu bringen, die Änderungen rückgängig zu machen, bevor das Laden der Seite abgeschlossen ist?

Benutzer-Avatar
LoicTheAztec

Versuchen Sie stattdessen Folgendes:

// For billing and shipping fields
add_filter( 'woocommerce_default_address_fields', 'custom_default_address_fields' );
function custom_default_address_fields( $address_fields ) {
    if ( is_checkout() ) {
        $address_fields['address_1']['label'] = __('Address', 'woocommerce');
        $address_fields['address_1']['placeholder'] = __('Street and house number', 'woocommerce');
        $address_fields['country']['label'] = __('Country', 'woocommerce');
        $address_fields['postcode']['label'] = __('Postcode', 'woocommerce');
        $address_fields['city']['label'] = __('City', 'woocommerce');
        $address_fields['city']['placeholder'] = __('City', 'woocommerce');
    }
    return $address_fields;
}

add_filter( 'woocommerce_checkout_fields', 'change_checkout_fields' );
function change_checkout_fields( $fields ) {
    $fields['order']['order_comments']['placeholder'] = __('Special notes');
    
    return $fields;
}

Der Code wird in die Datei functions.php des aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Getestet und funktioniert auf der letzten WooCommerce-Version (5.0.0).

  • Vielen Dank! Es funktioniert perfekt für die meisten Bereiche. Nur das Feld “order_comments” ändert sich nicht. Gibt es auch einen Standard-Hook für die Bestellkommentare?

    – JK

    14. Februar 2021 um 13:49 Uhr

  • OK danke. Ich habe Ihre Antwort als Antwort akzeptiert und sie auch positiv bewertet, weil sie nützlich ist und mir sehr geholfen hat. Ich habe auf der Testseite gesehen, dass das Feld order_comments auch funktioniert, aber irgendwie funktioniert es auf meiner Seite nicht. Ich denke, es gibt etwas anderes in meinem Code, das diese Änderung außer Kraft setzt. Gibt es einen anderen Ort als functions.php, der zusätzlichen Code dazu haben könnte?

    – JK

    14. Februar 2021 um 15:59 Uhr

  • Ich habe eine alte Plugin-Datei (Woocommerce Checkout Field Editor) gefunden, die ich gelöscht habe und jetzt funktioniert es. Vielen Dank für deine Hilfe @LoicTheAztec!

    – JK

    16. Februar 2021 um 13:48 Uhr

  • Es wäre großartig, wenn erklärt würde, warum es passiert, was Teil der ursprünglichen Frage war. Ich habe das gleiche Problem und der obige Code funktioniert nicht. Einige Einblicke in die Ursachen können den Schlüssel zur Lösung enthalten.

    – Murray Chapman

    14. Juni 2021 um 9:57 Uhr

1080490cookie-checkAngepasste Woocommerce-Checkout-Felder, die nach dem Laden der Seite auf den Standard zurückgesetzt werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy