Verschieben Sie das Notizfeld zur Kassenbestellung über „Konto erstellen“ in WooCommerce 3

Lesezeit: 3 Minuten

Benutzer-Avatar
Anton Synyaev

Ich verwende WooCommerce Version 3.2.1 und habe versucht, den folgenden Code in mein Design einzufügen functions.php um das Bestellnotizen-Kassenfeld zu verschieben und es funktioniert nicht:

add_filter( 'woocommerce_checkout_fields', 'bbloomer_move_checkout_fields_woo_3');
  function bbloomer_move_checkout_fields_woo_3( $fields ) {
  $fields['order']['order_comments']['priority'] = 8;
  return $fields;
}

Ich möchte das Textfeld „Bestellnotizen“ über das Kontrollkästchen „Konto erstellen“ und unter das Feld „Rechnungspostleitzahl“ auf der Checkout-Seite verschieben.

Wie kann ich es zum Laufen bringen?

  • Wohin möchten Sie Bestellnotizen verschieben? Bitte bearbeiten / aktualisieren Sie Ihre Frage und fügen Sie einige explizitere Details hinzu. Vielen Dank

    – LoicTheAztec

    23. November 2017 um 22:52 Uhr


  • Fertig. Vielleicht sollte ich versuchen, das Kontrollkästchen zu verschieben, aber ich habe keine Ahnung, wie das geht. Ich habe tatsächlich viele Informationen gefunden, wie man Adressfelder neu anordnet, aber wie ich sehe, funktionieren diese Methoden hier nicht

    – Anton Synyaev

    23. November 2017 um 23:01 Uhr

Benutzer-Avatar
LoicTheAztec

Im folgenden Code:

  • Ich entferne die “Bestellnotizen”
  • Ich füge ein ähnliches benutzerdefiniertes Abrechnungsfeld hinzu (mit dem Namen “billing_customer_note”)
  • Ich ordne die Felder neu

Sobald die Bestellung an der Kasse abgeschickt wurde, füge ich das benutzerdefinierte Rechnungsfeld „Kundennotiz“ als klassische Bestellnotiz hinzu…

// Checkout fields customizations
add_filter( 'woocommerce_checkout_fields' , 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {
    // Remove the Order Notes
    unset($fields['order']['order_comments']);

    // Define custom Order Notes field data array
    $customer_note  = array(
        'type' => 'textarea',
        'class' => array('form-row-wide', 'notes'),
        'label' => __('Order Notes', 'woocommerce'),
        'placeholder' => _x('Notes about your order, e.g. special notes for delivery.', 'placeholder', 'woocommerce')
    );

    // Set custom Order Notes field
    $fields['billing']['billing_customer_note'] = $customer_note;

    // Define billing fields new order
    $ordered_keys = array(
        'billing_first_name',
        'billing_last_name',
        'billing_company',
        'billing_country',
        'billing_address_1',
        'billing_address_2',
        'billing_city',
        'billing_state',
        'billing_postcode',
        'billing_phone',
        'billing_email',
        'billing_customer_note', // <= HERE
    );

    // Set billing fields new order
    $count = 0;
    foreach( $ordered_keys as $key ) {
        $count += 10;
        $fields['billing'][$key]['priority'] = $count;
    }

    return $fields;
}

// Set the custom field 'billing_customer_note' in the order object as a default order note (before it's saved)
add_action( 'woocommerce_checkout_create_order', 'customizing_checkout_create_order', 10, 2 );
function customizing_checkout_create_order( $order, $data ) {
    $order->set_customer_note( isset( $data['billing_customer_note'] ) ? $data['billing_customer_note'] : '' );
}

Hier ist dieser Code:

Code geht in die function.php-Datei Ihres aktiven Child-Themes (oder Themes) oder auch in jede Plugin-Datei.

  • Getestet und funktioniert.

    Vielen Dank – es funktioniert! Und wie verbindet man Platzhaltertext mit dem Basis-Sprachpaket? Ich meine, meine Website ist in zwei Sprachen und ich weiß nicht, wie ich das im benutzerdefinierten Feld machen soll

    – Anton Synyaev


  • 24. November 2017 um 6:18 Uhr

    Übrigens verwende ich das loco translate Plugin auf meiner Seite.

    – Anton Synyaev

  • 24. November 2017 um 6:55 Uhr __('Order Notes', 'woocommerce') @AntonSynyaev Im Code für übersetzbare Felder wie woocommerce ersetzen

    von Ihrem Themen-Domain-Slug … dann speichern. Jetzt müssen Sie Ihr Thema nach diesen neuen Übersetzungszeichenfolgen durchsuchen.

    – LoicTheAztec


  • 24. November 2017 um 7:11 Uhr

    “Domain Slug” ist wie “woodmart”?

    – Anton Synyaev

  • 24. November 2017 um 7:29 Uhr

    @AntonSynyaev Ihr Theme-Domain-Slug wie für Storefront Woocommerce-Theme ist “storefront” … Sie müssen also alle übersetzbaren Zeichenfolgen erneut scannen, sobald Sie fertig sind.

    – LoicTheAztec


1135340cookie-checkVerschieben Sie das Notizfeld zur Kassenbestellung über „Konto erstellen“ in WooCommerce 3

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

Privacy policy