Ein benutzerdefiniertes Feld zum WooCommerce-Abrechnungsformular hinzufügen?

Lesezeit: 3 Minuten

Benutzer-Avatar
JPashs

Ich erhalte diesen Code, um dem WooCommerce-Abrechnungsformular ein benutzerdefiniertes Feld hinzuzufügen.

Das Feld wird angezeigt, aber das Problem ist, dass das Feld nicht angezeigt wird label Noch placeholder Noch class name.

Was fehlt mir hier? Ich habe diesen Code zu functions.php in meinem Child-Theme hinzugefügt.

/*******************************
  CUSTOM BILLING FIELD
 ******************************** */
add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields');

function custom_woocommerce_billing_fields($fields)
{

    $fields['billing']['billing_options'] = array(
        'label' => __('NIF', 'woocommerce'), // Add custom field label
        'placeholder' => _x('Your NIF here....', 'placeholder', 'woocommerce'), // Add custom field placeholder
        'required' => false, // if field is required or not
        'clear' => false, // add clear or not
        'type' => 'text', // add field type
        'class' => array('my-css')    // add class name
    );

    return $fields;
}

  • Sie können Ihren Code für das Custombilling-Feld zum hinzufügen get_default_address_fields() Funktion in der class-wc-countries.php Datei

    – Daniel_ZA

    20. Februar 2017 um 10:29 Uhr


Benutzer-Avatar
Raunak Gupta

Wenn Sie verwenden woocommerce_billing_fields Dann müssen Sie die Felder nicht angeben, sie werden automatisch den Abrechnungsfeldern zugewiesen. Aber wenn Sie verwenden woocommerce_checkout_fields dann müssen Sie nur angeben, dass Sie ein Feld für möchten shipping oder billing.

Zum woocommerce_billing_fields

add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields');

function custom_woocommerce_billing_fields($fields)
{

    $fields['billing_options'] = array(
        'label' => __('NIF', 'woocommerce'), // Add custom field label
        'placeholder' => _x('Your NIF here....', 'placeholder', 'woocommerce'), // Add custom field placeholder
        'required' => false, // if field is required or not
        'clear' => false, // add clear or not
        'type' => 'text', // add field type
        'class' => array('my-css')    // add class name
    );

    return $fields;
}


Zum woocommerce_checkout_fields

add_filter('woocommerce_checkout_fields', 'custom_woocommerce_billing_fields');

function custom_woocommerce_billing_fields($fields)
{
    $fields['billing']['billing_options'] = array(
        'label' => __('NIF', 'woocommerce'), // Add custom field label
        'placeholder' => _x('Your NIF here....', 'placeholder', 'woocommerce'), // Add custom field placeholder
        'required' => false, // if field is required or not
        'clear' => false, // add clear or not
        'type' => 'text', // add field type
        'class' => array('my-css')   // add class name
    );

    return $fields;
}

Bezug:

  • Ich arbeite nicht. Alle Felder im Abrechnungsformular werden entfernt. Und das neue Feld wird nicht hinzugefügt. Es wird kein Fehler angezeigt.

    – JPashs

    20. Februar 2017 um 11:29 Uhr


  • @JPashs: Ich habe meinen Code nicht direkt aus meinem Gehirn getestet, aber es gibt einen logischen Fehler in Ihren Hook- und Array-Parametern, die Sie verwenden woocommerce_billing_fields und wieder hinzufügen ['billing'], daher erhalten Sie nicht die gewünschte Ausgabe. Ersetzen Sie einfach Ihren Haken durch diesen woocommerce_checkout_fields und behalte deine genannte funktion ist fraglich dann gehts auch.

    – Raunak Gupta

    20. Februar 2017 um 11:38 Uhr


  • Ich habe das versucht: pastebin.com/raw/JrnHfuVT funktioniert aber noch nicht. Können Sie bitte sagen, was ich vermisse, und den Code in Ihrer Antwort ändern. Damit ich Ihre Antwort akzeptieren kann. Vielen Dank.

    – JPashs

    20. Februar 2017 um 11:49 Uhr


  • Es klappt. Vielen Dank. Aber ich habe eine neue Bestellung erstellt, die dieses neue Feld ausfüllt, und nachdem ich die Bestellung als Administrator im Dashboard überprüft habe, sehe ich den für dieses Feld gesendeten Wert nicht. Ich muss den gesendeten Wert in der Bestellung sehen. Was muss ich hier noch tun?

    – JPashs

    20. Februar 2017 um 12:31 Uhr


  • Tatsächlich wird das Feld gespeichert, es wird nur nicht angezeigt. Das Hinzufügen einer Aktion zum Beispiel zu den Admin-Bestelldaten reicht aus add_action( 'woocommerce_admin_order_data_after_shipping_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 ); function my_custom_checkout_field_display_admin_order_meta($order){ echo '<p><strong>'.__('Custom field title').':</strong> ' . get_post_meta( $order->get_id(), '_shipping_custom_field', true ) . '</p>'; }

    – Viktor Lasow

    24. Januar 2018 um 10:33 Uhr


1365740cookie-checkEin benutzerdefiniertes Feld zum WooCommerce-Abrechnungsformular hinzufügen?

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

Privacy policy