Неоднократно уже встречался с ситуацией, когда заказчик требует убрать на странице оформления заказа в Вукомерс некоторые поля. Иногда вдобавок еще требуется добавить свои (кастомные поля). Но об этом позже.
Если стоит задача только убрать ненужные поля, то сделать это можно добавлением в файл 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. С помощью данного плагина легко изменить порядок полей, а также можно добавлять новые поля.