Удаление полей со страницы оформления заказа Woocommerce

woocommerce

В этой статье будет приведен код, который позволяет без использования плагинов убрать лишние поля со страницы оформления заказа. Часто это приходится делать для тех, кто занимается продажей только в своем городе (например доставка еды).

Для удаления полей требуется добавить в файл functions.php темы следующий код:

add_filter( 'woocommerce_checkout_fields' , 'no_required_checkout_fields' );
function no_required_checkout_fields( $fields ) {
	$fields['billing']['billing_last_name']['required'] = false;
	$fields['billing']['billing_address_1']['required'] = false;
	$fields['billing']['billing_state']['required'] = false;
	$fields['billing']['billing_city']['required'] = false;
	$fields['billing']['billing_country']['required'] = false;
	$fields['billing']['billing_postcode']['required'] = false;
	return $fields;
}

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) { /*Убрали ненужные поля*/
	unset($fields['billing']['billing_company']);
	//unset($fields['billing']['billing_country']);
	unset($fields['billing']['billing_address_2']);
	unset($fields['billing']['billing_state']);
	unset($fields['billing']['billing_postcode']);
	unset($fields['billing']['billing_city']);
return $fields;
}

add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields');
function custom_woocommerce_billing_fields( $fields ) {
	$fields['billing_address_1']['class'] = array( 'form-row-wide' ); /*Поле адреса шире*/
return $fields;
}

Первый функция применяется к фильтру woocommerce_checkout_fields и позволяет сделать поля необязательным. Это необходимо, если мы этого не сделаем — посетитель никогда не сможет оформить заказ.

Вторая функция — собственно удаление этих полей. Поле «billing_country» специально закомментировано, так как если убрать его, то woocommerce также возвращает ошибку с незаполненными полями. Для того чтобы убрать его следует выбрать единственную страну, в которой будет осуществляться продажа и скрыть с помощью CSS, добавив в файл style.css темы (или добавив через Внешний вид -> Настроить -> Дополнительные стили):

#billing_country_field {
	display: none;
}

Третья функция позволяет поля сделать шире, для этого к выбранному полю «billing_address_1» мы присвоим класс «form-row-wide».

Идентификаторы всех полей можно найти на самой странице оформления заказа с помощью консоли разработчика.