Неоднократно уже встречался с ситуацией, когда заказчик требует убрать на странице оформления заказа в Вукомерс некоторые поля. Иногда вдобавок еще требуется добавить свои (кастомные поля). Но об этом позже.
Если стоит задача только убрать ненужные поля, то сделать это можно добавлением в файл functions.php текущей темы следующего кода:
add_filter( 'woocommerce_checkout_fields' , 'customize_checkout_fields' ); function customize_checkout_fields( $fields ) { unset($fields['billing']['billing_first_name']); unset($fields['billing']['billing_last_name']); unset($fields['billing']['billing_company']); unset($fields['billing']['billing_address_1']); unset($fields['billing']['billing_address_2']); unset($fields['billing']['billing_city']); unset($fields['billing']['billing_postcode']); unset($fields['billing']['billing_country']); unset($fields['billing']['billing_state']); unset($fields['billing']['billing_phone']); unset($fields['order']['order_comments']); unset($fields['billing']['billing_email']); unset($fields['account']['account_username']); unset($fields['account']['account_password']); unset($fields['account']['account_password-2']); return $fields; }
В данном варианте функции перечислены все поля, присутствующие на странице оформления заказа в Woocommerce. Поэтому в таком варианте будут удалены все поля. Конечно же, вам такой вариант вряд ли подойдет. А потому в каждом конкретном случае нужно оставить в функции только те поля, которые нужно убрать. Например, очень часто требуется убрать поле с названием компании. Код в данном случае будет выглядеть так:
add_filter( 'woocommerce_checkout_fields' , 'customize_checkout_fields' ); function customize_checkout_fields( $fields ) { unset($fields['billing']['billing_company']); return $fields; }
В более сложных случаях, когда в условие задачи добавляется изменение порядка, в котором поля должны выводится на странице оформления заказа, можно воспользоваться плагином. Мне понравился для этой цели плагин Saphali Woocommerce Russian. С помощью данного плагина легко изменить порядок полей, а также можно добавлять новые поля.