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