Настройка placehorlder в биллинговых / отгрузочных формах

Я использую фильтр woocommerce_checkout_fields для настройки заполнителей на странице проверки WooCommerce.

  add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); function custom_override_checkout_fields( $fields ) { $fields['billing']['billing_first_name']['placeholder'] = 'Name'; $fields['billing']['billing_last_name']['placeholder'] = 'Surname'; $fields['billing']['billing_email']['placeholder'] = 'Email'; $fields['billing']['billing_company']['placeholder'] = 'Company Name'; $fields['billing']['billing_phone']['placeholder'] = 'Phone'; $fields['billing']['billing_postcode']['placeholder'] = 'Zip Code'; $fields['billing']['billing_city']['placeholder'] = 'City'; $fields['shipping']['shipping_first_name']['placeholder'] = 'Name'; $fields['shipping']['shipping_last_name']['placeholder'] = 'Surname'; $fields['shipping']['shipping_city']['placeholder'] = 'City'; $fields['shipping']['shipping_postcode']['placeholder'] = 'Zip Code'; return $fields; } 

Эта работа прекрасна только для формы страницы оформления.

Как настроить «заполнители» во всех форматах доставки и биллинга?

Благодарю.

Если вы имеете в виду страницы « Мои учетные записи» для формы «Биллинг и доставка», единственный крючок фильтра (который я знаю), который может сделать трюк:

 add_filter( 'woocommerce_form_field_args', 'custom_form_field_args', 10, 3 ); function custom_form_field_args( $args, $key, $value ) { // your code return $args; }; 

Он находится в wc-template-functions.php в строке 1734 , вызван woocommerce_form_field() в шаблонах my_account под my_account , form-edit-address.php file (отображает поля формы).


Это $args по умолчанию, которые вы можете использовать для таргетинга изменений, которые вы хотите сделать в своей функции фильтрации:

 $defaults = array( 'type' => 'text', 'label' => '', 'description' => '', 'placeholder' => '', 'maxlength' => false, 'required' => false, 'autocomplete' => false, 'id' => $key, 'class' => array(), 'label_class' => array(), 'input_class' => array(), 'return' => false, 'options' => array(), 'custom_attributes' => array(), 'validate' => array(), 'default' => '', ); 

ПРИМЕЧАНИЕ. С некоторыми изменениями, сделанными Стоном, он работает. (см. комментарий) .

ОБЛАСТЬ ПРИМЕНЕНИЯ:
Вы можете использовать «placeholder» таким образом, чтобы настроить таргетинг на каждый заполнитель, который вам нужно изменить:

 if ( $args['id'] == 'your_slug1' ) { $args['placeholder'] = 'your_new_placeholder1'; } elseif ( $args['id'] == 'your_slug2' ) { $args['placeholder'] = 'your_new_placeholder2'; } // elseif … and go on 

Заполнители, как правило, одинаковы для биллинга и адреса доставки … Таким образом, ваш код будет выглядеть так:

 add_filter( 'woocommerce_form_field_args', 'custom_form_field_args', 10, 3 ); function custom_form_field_args( $args, $key, $value ) { if ( $args['id'] == 'your_slug1' ) { $args['placeholder'] = 'your_new_placeholder1'; } elseif ( $args['id'] == 'your_slug2' ) { $args['placeholder'] = 'your_new_placeholder2'; } // elseif … and go on return $args; };