Ta opcja jest ściśle powiązana z JAK USTAWIĆ WARUNKI WYŚWIETLANIA PÓL W FORMULARZU KASY. Mianowicie w punkcie 12 wykonaliśmy warunkowe wyświetlanie pól po zaznaczeniu chackbox’a jeśli klient zażyczy sobie faktury. I wszystko super ale pola, które ukryliśmy są nadal wymagane i w momencie kiedy klient nie będzie potrzebował faktury, wyskoczy mu komunikat o wymaganych polach, których nie ma w formularzu.
Rozwiązanie jest stosunkowo proste, wystarczy dodać odpowiedni fragment kodu, który w pierwszej kolejności usunie nam całkowicie pole z kodem pocztowym ( bo jak widać na obrazku, komunikat jest troszkę inny niż w przypadku pól z adresem i miastem, i ustawienie go jako pole opcjonalne nic nam nie da, więc najlepiej będzie je całkowicie usunąć. W końcu i tak na fakturze nie jest ono wymagane ), i kolejno pole miasta i adresu ustawi nam na opcjonalne.
Lokalizacja : plik functions.php
add_filter( 'woocommerce_checkout_fields’ , 'bbloomer_remove_billing_postcode_checkout’ );
function bbloomer_remove_billing_postcode_checkout( $fields ) {
unset($fields[’billing’][’billing_postcode’]);
return $fields;
}
Ten fragment zajmie się usunięciem pola z kodem pocztowym. Dodatkowo dodam że nie wszystkie kraje posiadają kod pocztowy, a jeśli sprzedajemy produkty fizyczne i wysyłamy je również do krajów zagranicznych, to zastosowanie na pewno w znacznym stopniu ułatwi zakupy.
add_filter( ’woocommerce_billing_fields’, 'ts_unrequire_wc_poleopcjonalne_field’);
function ts_unrequire_wc_poleopcjonalne_field( $fields ) {
$fields[’billing_city’][’required’] = false;
$fields[’billing_address_1′][’required’] = false;
return $fields;
}
Pierwsza linia tutaj deklaruje funkcję o nazwie „ts_unrequire_wc_poleopcjonalne_field”. Możesz nazwać swoją funkcję, jak chcesz.
„billing_city” & „billing_address_1” odnoszą się do nazwy polu miasta i adresu, które chcemy uczynić opcjonalnymi.
Wewnątrz funkcji $fields[’billing_city’][’required’] jest przypisywana wartość „false”, co oznacza, że pole nie jest wymagane lub jest opcjonalne.