2016-08-03 7 views
1

Ich versuche, ein zusätzliches Feld in Woocommerce Abrechnungsteil hinzuzufügen. Ich möchte, dass das Feld "title" vor dem Feld "name" angezeigt wird.woocommerce zusätzliche Abrechnungsfeld

Ich habe dies versucht:

// Add a new checkout field 
    function custom_filter_checkout_fields($fields){ 
    $fields['billing_title_field'] = array(
     'some_field' => array(
      'type' => 'text', 
      'required'  => true, 
      'label' => __('Some field') 
      ) 
     ); 

    return $fields; 
} 
    add_filter('woocommerce_checkout_fields', 'custom_filter_checkout_fields' ); 

und dann

function order_fields($fields) { 

$order = array(
"billing_title_field", 
"billing_first_name", 
"billing_last_name", 
"billing_email", 
"billing_phone", 
"billing_country", 
"billing_address_1", 
"billing_address_2", 
"billing_postcode", 
"billing_company" 
); 

foreach($order as $field) 
{ 
    $ordered_fields[$field] = $fields["billing"][$field]; 
} 

$fields["billing"] = $ordered_fields; 
return $fields; 

}

Aber das gibt mir kein Feld ich im ersten Schritt erstellt haben. Es ist klar, dass ich einen grausamen Teil des Prozesses vermisse, aber ich kann nicht genau herausfinden, was genau ist. Suche im Internet war kein Erfolg (die Methoden, die dort zur Verfügung gestellt werden, fügen Felder vor oder nach Abrechnungsfeldern hinzu und ich muss es innerhalb der Gruppe von Abrechnungsfeldern hinzufügen).

Jede Hilfe ist willkommen! Danke im Voraus!

Antwort

0

Also ich denke, ich die Antwort gefunden. Eigentlich habe ich im ersten Code eine wichtige Sache verpasst. Das sollte so aussehen:

function custom_filter_checkout_fields($fields){ 
    $fields['billing']['billing_title_field'] = array(
     'some_field' => array(
     'type' => 'text', 
     'required'  => true, 
     'label' => __('Some field') 
     ) 
    ); 

return $fields; 
} 
add_filter('woocommerce_checkout_fields', 'custom_filter_checkout_fields'); 

und dann das zweite Stück Code, um das erstellte Feld an der richtigen Stelle zu setzen.