Szanujemy Twoją prywatność

Używamy plików cookies niezbędnych do działania strony. Za Twoją zgodą korzystamy też z cookies analitycznych (Google Analytics), żeby wiedzieć, co ulepszać, i marketingowych (piksel Meta, Google Ads), żeby mierzyć skuteczność reklam. Możesz zaakceptować wszystkie, odrzucić wszystkie albo wybrać sam. Polityka prywatności.

Jak dodać pole NIP w WooCommerce: zamówienie klasyczne i blokowe

Awatar Daniel Jeziorski

Pole NIP dodasz w WooCommerce wtyczką albo kilkoma linijkami kodu. Najpierw sprawdź, czy Twój sklep używa zamówienia klasycznego, czy blokowego, bo od tego zależy, które rozwiązanie w ogóle się wyświetli. Od WooCommerce 8.3 (listopad 2023) nowe sklepy dostają zamówienie blokowe, a sklepy założone wcześniej po aktualizacji zostają przy klasycznym.

Aktualizacja 19 października 2026: przepisałem wpis pod oba rodzaje zamówienia, dodałem kod oparty na oficjalnym API WooCommerce, ostrzeżenie o zamkniętej wtyczce i sposób sprawdzenia, czy NIP trafia na fakturę.

Przykład strony zamówienia w WooCommerce z polem NIP

Najpierw sprawdź, jakie masz zamówienie: klasyczne czy blokowe

Wejdź w Strony i otwórz stronę zamówienia (zwykle „Zamówienie” albo „Checkout”). Jeśli w edytorze widzisz blok „Zamówienie” z sekcjami formularza, masz zamówienie blokowe. Jeśli widzisz tylko shortcode [woocommerce_checkout], masz klasyczne.

To rozróżnienie jest ważne, bo większość starszych poradników i części wtyczek działa tylko z zamówieniem klasycznym. Pole dodane filtrem woocommerce_billing_fields nie pojawi się w zamówieniu blokowym i to najczęstszy powód, dla którego „pole NIP się nie wyświetla”.

Sposób 1: wtyczka, bez pisania kodu

Najprościej dodać pole wtyczką do edycji pól zamówienia. Popularna jest Flexible Checkout Fields od WP Desk: darmowa wersja wystarczy do dodania pola NIP, a płatna dodaje między innymi warunkowe wyświetlanie pól. Link do WP Desk jest linkiem partnerskim.

Uwaga na rodzaj zamówienia: Flexible Checkout Fields obsługuje zamówienie klasyczne. Do zamówienia blokowego WP Desk ma osobną wtyczkę, Flexible Checkout Fields For Blocks. Przed instalacją sprawdź w opisie każdej wtyczki, z którym zamówieniem działa.

Dodawanie pola NIP we wtyczce Flexible Checkout Fields od WP Desk

Dwie rzeczy, o które pytają mnie najczęściej:

  • Jedno pole NIP, nie dwa. Wtyczki do faktur często dodają własne pole NIP. Jeśli doinstalujesz drugą wtyczkę z tym samym polem, klient zobaczy NIP dwa razy, a na fakturę trafi tylko jedno z nich.
  • Zamknięta wtyczka. Wtyczka „NIP Field for WooCommerce” została zamknięta w katalogu WordPress.org 4 sierpnia 2026 z powodu naruszenia wytycznych i nie dostaje już aktualizacji. Jeśli jej używasz, zaplanuj zamianę na inne rozwiązanie.

Sposób 2: kod dla zamówienia blokowego

Dla zamówienia blokowego WooCommerce ma oficjalne API dodatkowych pól. Pole rejestrujesz funkcją woocommerce_register_additional_checkout_field() na akcji woocommerce_init. Lokalizacja address dodaje pole do formularza adresu, a contact do danych kontaktowych zapisywanych na koncie klienta. Poniżej NIP jako pole nieobowiązkowe, bo osoby prywatne go nie mają, z czyszczeniem i prostą walidacją 10 cyfr.

add_action( 'woocommerce_init', function () {
	if ( ! function_exists( 'woocommerce_register_additional_checkout_field' ) ) {
		return; // starsza wersja WooCommerce bez API pól zamówienia
	}
	woocommerce_register_additional_checkout_field(
		array(
			'id'                => 'moj-sklep/nip',
			'label'             => 'NIP (do faktury na firmę)',
			'location'          => 'address',
			'type'              => 'text',
			'required'          => false,
			'sanitize_callback' => function ( $value ) {
				return preg_replace( '/[^0-9]/', '', (string) $value );
			},
			'validate_callback' => function ( $value ) {
				if ( '' !== $value && ! preg_match( '/^[0-9]{10}$/', $value ) ) {
					return new WP_Error( 'nip_niepoprawny', 'NIP powinien mieć 10 cyfr.' );
				}
			},
		)
	);
} );

Kod wklej do własnej wtyczki albo do pliku functions.php motywu potomnego i najpierw sprawdź go na kopii sklepu. Zapisaną wartość odczytasz w kodzie przez klasę CheckoutFields (metoda get_field_from_object()), zgodnie z dokumentacją WooCommerce.

Sposób 3: kod dla zamówienia klasycznego

W zamówieniu klasycznym wystarczy filtr pól rozliczeniowych. WooCommerce zapisze wartość w zamówieniu jako _billing_nip, czyli tak samo jak pozostałe pola adresu do faktury.

add_filter( 'woocommerce_billing_fields', function ( $fields ) {
	$fields['billing_nip'] = array(
		'label'    => 'NIP (do faktury na firmę)',
		'required' => false,
		'class'    => array( 'form-row-wide' ),
		'priority' => 35, // zaraz po nazwie firmy
	);
	return $fields;
} );

Przy włączonym HPOS nie czytaj tej wartości bezpośrednio z tabeli wpisów. Użyj $order->get_meta( '_billing_nip' ), wtedy kod działa niezależnie od sposobu przechowywania zamówień.

NIP na fakturze: połącz pole z systemem księgowym

Samo pole niczego nie załatwia, jeśli NIP nie trafia na fakturę. Integracja z programem księgowym musi czytać ten sam klucz pola, który dodałeś. Najprościej użyć pola, które dodaje sama wtyczka do faktur, i nie dokładać własnego.

Jak to wygląda w popularnych programach:

Porównanie wtyczek do faktur znajdziesz we wpisie o wystawianiu faktur w WooCommerce.

Dane firmy z GUS po wpisaniu NIP

W sklepach B2B często wdrażam pobieranie danych firmy z rejestru GUS: klient wpisuje NIP, a nazwa firmy i adres uzupełniają się same. Mniej literówek w danych do faktury i krótszy formularz. W katalogu WordPress.org są do tego gotowe wtyczki, na przykład Nip Finder (pobiera dane z GUS, wymaga klucza do API GUS) i Polonizer for WooCommerce (sprawdzanie w Białej liście i GUS w wersji PRO). Przed wyborem sprawdź, czy wtyczka działa z Twoim rodzajem zamówienia i kiedy była ostatnio aktualizowana.

Jak sprawdzam pole NIP po wdrożeniu

Nie kończę na tym, że pole widać w formularzu. Przechodzę całą ścieżkę tak, jak zrobi to klient:

  • składam zamówienie testowe z NIP-em, od koszyka do opłacenia, i sprawdzam, czy płatność zaktualizowała status zamówienia;
  • sprawdzam, czy automat do faktur wystawił właściwy dokument i czy NIP jest na fakturze, a nie tylko w zamówieniu;
  • sprawdzam, czy maile do klienta i do sklepu faktycznie wyszły, zaglądając do logów wtyczki SMTP. Brak maila to najczęstszy niewidoczny błąd.

Ten sam test powtarzam bez NIP-u, jako osoba prywatna. Pole nieobowiązkowe nie może blokować zakupu klientom, którzy faktury na firmę nie potrzebują.

Edycja pól formularza zamówienia WooCommerce w edytorze pól

Najczęstsze problemy z polem NIP

  • Pola nie widać w formularzu. Najczęściej wtyczka albo kod działa tylko z zamówieniem klasycznym, a sklep ma blokowe (albo odwrotnie).
  • NIP pojawia się dwa razy. Pole dodają dwie wtyczki, zwykle wtyczka do faktur i edytor pól zamówienia. Zostaw jedno.
  • NIP jest w zamówieniu, ale nie na fakturze. Integracja z programem księgowym czyta inny klucz pola. Użyj pola z wtyczki do faktur albo ustaw w niej, skąd ma brać NIP.
  • Klienci wpisują NIP z myślnikami albo prefiksem PL. Czyść wartość przy zapisie (jak w przykładzie dla zamówienia blokowego), zanim trafi do faktury.

Najczęściej zadawane pytania

Czy pole NIP w WooCommerce powinno być obowiązkowe?

Zwykle nie. Jeśli sprzedajesz także osobom prywatnym, obowiązkowe pole NIP zablokuje im zakup. Obowiązkowe ma sens tylko w sklepie wyłącznie dla firm.

Dlaczego pole NIP dodane w functions.php nie wyświetla się w zamówieniu?

Najpewniej masz zamówienie blokowe, a kod korzysta z filtra dla zamówienia klasycznego. Dla zamówienia blokowego użyj funkcji woocommerce_register_additional_checkout_field().

Gdzie WooCommerce zapisuje NIP z formularza zamówienia?

W zamówieniu klasycznym pole dodane jako billing_nip trafia do danych zamówienia pod kluczem _billing_nip. W zamówieniu blokowym wartość odczytujesz przez klasę CheckoutFields. Wtyczki mogą używać własnych kluczy, więc sprawdź to w ich dokumentacji.

Czy mogę pobierać dane firmy z GUS po wpisaniu NIP?

Tak, służą do tego gotowe wtyczki, na przykład Nip Finder albo Polonizer for WooCommerce w wersji PRO. Sprawdź ich zgodność z Twoim rodzajem zamówienia.

Budujesz sklep dla klientów firmowych i chcesz, żeby faktury wystawiały się same? Zobacz, jak pracuję przy sklepach internetowych na WooCommerce.

Autor wpisuDaniel Jeziorski

Zakochany w WordPressie, wykorzystuje go na każdym kroku do swoich projektów i w większości projektów klientów. Traktuje strony na WordPress jako kluczowy element lejków marketingowo-sprzedażowych. Pomagam oswajać się z tym systemem CMS i wyciągnąć z niego jeszcze więcej!

Polecane dla tej kategorii

Niektóre polecane wpisy zawierają linki afiliacyjne. Polecam tylko narzędzia, z których sam korzystam.

Czytaj dalej

Najnowsze wpisy

Wszystkie wpisy