Świnicki w Sieci

Jak ustawić warunki wyświetlania pól w formularzu kasy


Z lekcji wcześniejszych już wiemy jak ukryć niepotrzebne pola i jak nadać im priorytet wyświetlania. Teraz możemy poruszyć temat tak zwanej LOGIKI WARUNKÓW WYŚWIETLANIA. Docelowo wszystkie pola kasy takie jak adres, kod pocztowy czy miasto są widoczne. I w przypadku sprzedaży produktów fizycznych są one jak najbardziej potrzebne. Ale co w momencie kiedy sprzedajemy produkty cyfrowe ? Tak naprawdę potrzebujemy tylko Imię i nazwisko klienta oraz email. Więc w tym przypadku wykorzystali byśmy kod, który umożliwi nam ukrycie zbędnych pól. I wszystko fajnie, ale nasuwa się jeszcze jedna zależność. Co w sytuacji kiedy wystawiamy faktury, a chcemy żeby niepotrzebne pola były ukryte. Do faktury wymagana jest nazwa, nip i adres wiec dobrze by było żeby mimo wszystko znajdywały się one w formularzu kasy. No i tu z pomocą przyjdzie nam kolejny fragment kodu, który wykorzystamy sobie do wykonania tego działania. W tym przykładzie oprzemy się na systemie do wystawiania faktur – fakturownia.pl.
Fakturownia po integracji automatycznie dodaje nam chackbox i to właśnie na nim oprzemy całą strukturę warunków.




Co chcemy uzyskać ?
Chcemy aby po zaznaczeniu chackbox’a pojawiały nam się dodatkowe pola, które są wymagane w przypadku faktury czyli nazwa firmy, nip i adres.
Jeśli chackbox będzie odznaczony pola będą ukryte. 

add_action( 'woocommerce_after_checkout_form’,
’bbloomer_conditionally_hide_show_new_field’, 9999 );
function bbloomer_conditionally_hide_show_new_field() {
wc_enqueue_js( „
jQuery(’input#billing_faktura’).change(function() {
if (! this.checked) {
jQuery(’#billing_nip_field’).fadeOut();
jQuery(’#billing_nip_field input’).val(”);        
} else {
jQuery(’#billing_nip_field’).fadeIn(); }
}).change();
„);
}

Jak zapewne zauważyliście użyty został również fragment jQuery, który odpowiada za funkcję if –  jeśli oraz else – w przeciwnym razie.
Billing_faktura jest to nazwa naszego chackbox’a, od którego uzależnione będzie wyświetlanie poszczególnych pól. Natomiast billing_nip, jest to pole odpowiedzialne za wprowadzanie NIPU firmy i właśnie to pole będzie ukrywane bądź wyświetlane w zależności od zaznaczenia.
Dla pozostałych pól, które będziemy chcieli ukryć, wystarczy że przekopiujemy fragment:


wc_enqueue_js( „
jQuery(’input#billing_faktura’).change(function() {
if (! this.checked) {
jQuery(’#billing_NAZWAPOLA_field’).fadeOut();
jQuery(’#billing_NAZWAPOLA_field input’).val(”);        
} else {
jQuery(’#billing_NAZWAPOLA_field’).fadeIn(); }
}).change();
„);


pamiętając o tym żeby zmienić odpowiednie wartości i koniecznie żeby wszystkie fragmenty znajdowały się między klamerkami {}.

Oczywiście to rozwiązanie możemy zastosować dla innego typu warunków, nie koniecznie dla faktur, jednak jest to jedno z najpraktyczniejszych udogodnień w momencie kiedy sprzedajemy produkty cyfrowe a nie chcemy żeby wyświetlały się nam wszystkie pola, które klient musi uzupełnić.


TO ROZWIĄZANIE JEST ŚCIŚLE POWIĄZANE Z ARTYKUŁEM ZMIANA WYMAGANYCH PÓL NA POLA OPCJONALNE W FORMULARZU KASY

CHCESZ BYĆ NA BIEŻĄCO?

ZAPISZ SIĘ DO MOJEGO NEWSLETTERA
JUŻ DZIŚ.

[activecampaign]

Uzupełnienie powyższego pola stanowi zgodę na otrzymywanie od ŚWINICKI W SIECI z siedzibą w Zgorzelcu newslettera zawierającego treści informacyjne, marketingowe dotyczące portalu www.swinickiwsieci.pl. Zgodę można wycofać w każdym czasie. Wycofanie zgody nie ma wpływu na zgodność z prawem przetwarzania dokonanego przed jej wycofaniem.