Мне пока подошло только одно решение - делать поля не обязательными именно вот так
add_filter( 'woocommerce_checkout_fields', 'unrequire_checkout_fields' );
function unrequire_checkout_fields( $fields ) {
$fields['billing']['billing_company']['required'] = false;
$fields['billing']['billing_city']['required'] = false;
$fields['billing']['billing_postcode']['required'] = false;
$fields['billing']['billing_country']['required'] = false;
$fields['billing']['billing_state']['required'] = false;
$fields['billing']['billing_address_1']['required'] = false;
$fields['billing']['billing_address_2']['required'] = false;
return $fields;
}
И скрывать только css-ом
#billing_country_field, #billing_address_1_field, #billing_address_2_field,#billing_state_field,#billing_last_name_field,#billing_postcode_field,#billing_company_field {
display: none !important;
}
Но по-моему это ОЧЕНЬ не гибко. Как только вставляю вот так, то бесит своим "введите адрес",еще и "неправильный способ доставки" относительно нативного самовывоза. При чем и вот так полностью отдельным экшеном, и в тот хук просто поля unset($fields['billing']..... без навешивания нового экшена перед return.
add_filter('woocommerce_checkout_fields','remove_checkout_fields');
function remove_checkout_fields($fields){
unset($fields['billing']['billing_first_name']);
unset($fields['billing']['billing_last_name']);
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']);
return $fields;
}
Именно без этих строк с css все отправляется как надо, и именно на них ругается, многоразово уже перепроверил. Может у кого было и как-то решили, поняли, в чем конфликт?
Я имею в виду нативно, плагины то ясно, что вагон найдется.