2017-02-20 22 views
1

Я получаю этот код, чтобы добавить настраиваемое поле в форму оплаты WooCommerce.Добавить настраиваемое поле в форму оплаты WooCommerce?

Поле отображается, но проблема состоит в том, что поле имеет не label ни placeholder ни class name.

Что мне здесь не хватает? Я добавил этот код к functions.php в мою дочернюю тему.

/******************************* 
    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; 
} 
+0

Вы можете добавить свой код для поля custombilling в функцию 'get_default_address_fields()' в файле 'class-wc-countries.php' –

ответ

2

Если вы используете woocommerce_billing_fields, то вам не нужно указать поля, он будет автоматически получать назначения в биллинговую полей. Но если вы используете woocommerce_checkout_fields, то только необходимо указать, что вы хотите указать поле для shipping или billing.

Для 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; 
} 


Для 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; 
} 

Ссылка:

Hop это помогает!

+0

Я не работаю. Все поля в форме Биллинга удаляются. И новое поле не добавляется. Ошибка не отображается. – JPashs

+0

@JPashs: Я не тестировал свой код только из моего мозга, но есть логическая ошибка в ваших параметрах hook и array, которые вы используете 'woocommerce_billing_fields' и снова добавляете' ['billing'] ', в результате вы не получая желаемого результата. Просто замените свой крючок на это 'woocommerce_checkout_fields' и сохраните свою указанную функцию, тогда она также будет работать. –

+0

Я пробовал это: http://pastebin.com/raw/JrnHfuVT, но пока не работает. Не могли бы вы рассказать, что мне не хватает, и изменить код в вашем ответе. Чтобы я мог принять ваш ответ. Благодарю. – JPashs