Как удалить поля на странице оформлении заказа WooCommerce

При работе с интернет-магазином WooCommerce, иногда возникает необходимость скрыть лишние поля на странице оформления заказа в силу их ненужности и избыточности. Данная статья поможет простым способом удалить ненужные поля используя знания PHP и Wordpress.

WooCommerce - прекрасный плагин, в архитектуре которого заложены возможности для расширения практически в любую сторону. Именно этими возможностями мы и воспользуемся. Нам понадобится подключится к фильтру woocommerce_checkout_fields

Синтаксис функции, которая должна подключаться к данному фильтру выглядит так:

add_filter('woocommerce_checkout_fields' , 'kirillbdev_customize_checkout_fields');

function kirillbdev_customize_checkout_fields($fields) { 
    return $fields;
}

Функция должна принимать параметр $fields. Именно он и хранит обьявления всех полей страницы оформления заказа, которые затем будут выведены пользователю. Чтобы убрать ненужное поле, необходимо воспользоваться PHP функцией unset, например:

add_filter('woocommerce_checkout_fields' , 'kirillbdev_customize_checkout_fields');

function kirillbdev_customize_checkout_fields($fields) {
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_address_2']);
  
    return $fields;
}

Список доступных полей для удаления:

Информация о плательщике

$fields['billing']['billing_first_name'] // Имя
$fields['billing']['billing_last_name'] // Фамилия
$fields['billing']['billing_company'] // Название компании
$fields['billing']['billing_country'] // Страна
$fields['billing']['billing_address_1'] // Адрес
$fields['billing']['billing_address_2'] // Дополнительный адрес
$fields['billing']['billing_city'] // Город (населенный пункт)
$fields['billing']['billing_state'] // Область / район
$fields['billing']['billing_postcode'] // Почтовый индекс
$fields['billing']['billing_phone'] // Телефон
$fields['billing']['billing_email'] // Email
Информация о доставке
$fields['shipping']['shipping_first_name']
$fields['shipping']['shipping_last_name']
$fields['shipping']['shipping_company']
$fields['shipping']['shipping_country']
$fields['shipping']['shipping_address_1']
$fields['shipping']['shipping_address_2']
$fields['shipping']['shipping_city']
$fields['shipping']['shipping_state']
$fields['shipping']['shipping_postcode']
$fields['order']['order_comments'] // Примечание к заказу
Надеюсь теперь у вас не возникнет сложностей с удалением лишних полей на странице оформления заказа. Всем добра :)