2017-02-02 5 views
4

Im Anschluss an die WooCommerce Kasse Felder Anpassung docs:
Customizing checkout fields using actions and filtersSanitize individuelle Kasse Felder Daten in WooCommerce

Ich habe ein benutzerdefiniertes Feld hinzugefügt Kasse Seite WooCommerce, durch functions.php.

Ich mache mir Sorgen, wenn ich Benutzereingaben für dieses benutzerdefinierte Feld bereinigen muss?

Ich denke, es braucht keine Bereinigung, da es in Abrechnungsfelder wie folgt übergeben wird: $ fields ['billing'], ist das korrekt?

Wenn nicht wie kann ich dieses benutzerdefinierte Feld desinfizieren?

Wenn Sie dieses benutzerdefinierte Feld erstellen, werden Textzeichenfolgen (lateinisch) und Ganzzahlen kombiniert mit einer Länge von nicht mehr als 50 akzeptiert.

// Hook in 
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

// Our hooked in function - $fields is passed via the filter! 
function custom_override_checkout_fields($fields) { 

//Adding custom text field 
$fields['billing']['billing_username'] = array(
'type' => 'text', 
'label'  => __('Your Username', 'woocommerce'), 
'placeholder' => _x('', 'placeholder', 'woocommerce'), 
'required' => true, 
'class'  => array('form-row-first'), 
'clear'  => true 
); 

return $fields; 
} 

Antwort

5

Wenn Sie in Ihrer Frage im Zusammenhang mit der zugehörigen offiziellen Dokumentation aussehen, haben Sie diesen Schnipsel bekommen:

/** 
* Update the order meta with field value 
*/ 
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta'); 

function my_custom_checkout_field_update_order_meta($order_id) { 
    if (! empty($_POST['my_field_name'])) { 
     update_post_meta($order_id, 'My Field', sanitize_text_field($_POST['my_field_name'])); 
    } 
} 

In Ihrem Fall, dass Sie nicht brauchen, dass als Adressfelder sind bereits von Woocommerce verarbeitet.

Für kundenspezifische Spezialgebiete: Die Antwort ist ja(was nicht der Fall ist)

Wie Sie in diesem Code sehen sie verwenden sanitize_text_field() Wordpress-Funktion, wenn das Speichern der übermittelten Daten in die Datenbank mit update_post_meta() Funktion ...

Dies ist nur für Felder individueller Kasse und nicht für bestehende Kasse Felder, die bereits ihren eigenen Prozess bekommen ...

+0

Ich verstehe, obwohl ich Abschnitt "Hinzufügen von benutzerdefinierten Versand und Rechnungsfelder" in der Dokumentation folgte, nicht im Abschnitt "Hinzufügen eines benutzerdefinierten speziellen Feld" – t0r

+0

@ t0r Ich habe meine Antwort aktualisiert ... In Ihrem Fall für Adressfelder Sie don ' t um Daten zu bereinigen, da sie bereits von WooCommerce-Kernskripten verarbeitet werden ... – LoicTheAztec

Verwandte Themen