2017-02-02 4 views
4

После оформления заказа поля настройки документации WooCommerce:
Customizing checkout fields using actions and filtersSanitize пользовательских Кассовые поля данных в WooCommerce

Я добавил пользовательское поле для WooCommerce оформления заказа страницы, через functions.php.

Я беспокоюсь, если мне нужно санировать вход пользователя для этого пользовательского поля?

Я думаю, что он не нуждается в санитации, поскольку он передается в поля выставления счетов, как в: $ fields ['billing'], это правильно?

Если нет, то как я дезинфицирую это пользовательское поле?

Создание этого настраиваемого поля предназначено для приема текстовых строк (латинских) и целых чисел, объединенных длиной не более 50.

// 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; 
} 

ответ

5

Если посмотреть на соответствующую официальную документацию, связанную с вашим вопросом, у вас есть этот фрагмент кода:

/** 
* 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'])); 
    } 
} 

В вашем случае вам не нужно, что в качестве адреса поле уже обработанный Woocommerce.

Для пользовательских специальных полей: Ответ да(это не ваш случай)

Как вы можете видеть в этом коде они используют sanitize_text_field() функцию WordPress, при сохранении представленных данных в базу данных с update_post_meta() функция ...

Это только для пользовательских полей кассе, а не для существующих кассовых полей, которые уже получают свой собственный процесс ...

+0

Я понимаю, что в следующих документах я добавил «Добавление пользовательских полей доставки и выставления счетов», не следуя разделу «Добавление специального специального поля» – t0r

+0

@ t0r Я обновил свой ответ ... В вашем случае для полей адресов вы не используете, t для дезинфекции данных, поскольку она уже обрабатывается основными скриптами WooCommerce ... – LoicTheAztec