Данная статья поможет тем ,кто работает с новой блочной структурой страницы checkout page woocommerce.
Если вы используете блочное оформление заказа в WooCommerce и хотите удалить или скрыть определенные поля, этот фрагмент кода идеально подойдет для вас. Это особенно полезно в ситуациях, когда вы продаете товары только в одной стране и вам не нужна такая информация, как штат, почтовый индекс или город. Удалив эти поля для выставления счета и доставки из блоков оформления заказа, вы можете упростить процесс оформления заказа, ускорив для клиентов совершение покупки.
Решение: Удалите / отключите поля для выставления счетов и адреса доставки на странице блоков оформления заказа WooCommerce
Фрагмент кода поможет удалить такие поля, как адрес, почтовый индекс, город и штат, со страницы блоков оформления заказа.
add_filter('woocommerce_get_country_locale', function( $locale ) {
foreach ( $locale as $key => $value ) {
// Make address_1, postcode, city, state fields optional and hidden for all countries
$locale[ $key ]['address_1'] = [
'required' => false,
'hidden' => true,
];
$locale[ $key ]['postcode'] = [
'required' => false,
'hidden' => true,
];
$locale[ $key ]['city'] = [
'required' => false,
'hidden' => true,
];
$locale[ $key ]['state'] = [
'required' => false,
'hidden' => true,
];
}
return $locale;
});
На выходе
Если магазин использует новую страницу оформления заказа на основе блоков, теперь вы можете увидеть, что поля адреса удаляются как из полей выставления счета, так и из полей доставки.

Решение: Отключить поле “Телефон” на странице блоков оформления заказа
Как вы, возможно, заметили, хук, используемый в классической проверке, больше не работает с блоками проверки. Следующий фрагмент позволяет скрыть поля телефона как в разделах доставки, так и в разделе выставления счетов, что полезно при предложении услуг, не требующих контакта по телефону, таких как цифровые загрузки.
function ts_hide_phone_fields_in_block_checkout() {
// Check if it's the checkout page
if (is_checkout()) {
?>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
// Hide all phone input fields in the checkout page (both billing and shipping)
const phoneFields = document.querySelectorAll('input[type="tel"]');
phoneFields.forEach(function(field) {
field.closest('div').style.display = 'none'; // Hide the parent div
});
});
</script>
<?php
}
}
add_action('wp_footer', 'ts_hide_phone_fields_in_block_checkout');
Этот фрагмент кода скроет поля телефона (как для выставления счета, так и для доставки) на странице блоков оформления заказа WooCommerce.

Кроме того, если вы хотите добавить пользовательское поле для оформления заказа, например, средство выбора даты доставки, вы также можете легко это сделать. У нас есть подробное руководство по добавлению поля даты в ваши блоки оформления заказа в WooCommerce, которое может стать отличным способом еще больше улучшить процесс оформления заказа.
1