Ukrycie cen w WooCommerce przed niezalogowanymi użytkownikami pozwala prowadzić katalog produktów bez publicznego udostępniania cennika. To rozwiązanie przydatne zwłaszcza w hurtowniach, sklepach B2B i sprzedaży opartej na indywidualnych warunkach handlowych. Trzeba jednak rozróżnić dwie rzeczy: ukrycie ceny na stronie produktu oraz rzeczywiste ograniczenie dostępu do informacji o cenach. Sam brak kwoty na ekranie nie oznacza jeszcze, że nie można jej odczytać z innych elementów sklepu.
Jak zainstalować wtyczkę ukrywającą ceny w WooCommerce?
Najprostszym sposobem na ukrycie cen bez pisania kodu jest bezpłatna wtyczka Hide Price Until Login for WooCommerce, której autorem jest Ankit Patel. Rozszerzenie pozwala zastąpić cenę własnym komunikatem i usuwać przycisk „Dodaj do koszyka” dla osób niezalogowanych.
Według stanu na 14 października 2026 roku w katalogu WordPress.org dostępna jest wersja 1.3. Wymaga WordPressa 7.0 lub nowszego oraz PHP od wersji 7.4. Autor deklaruje przetestowanie jej z WordPressem do wersji 7.1.3. Katalog wskazuje również 20+ aktywnych instalacji i brak recenzji użytkowników. Przy tak niewielkiej historii publicznych ocen rozsądniej najpierw sprawdzić rozszerzenie na kopii sklepu niż włączać je od razu podczas normalnej sprzedaży.
Instalacja krok po kroku:
- Zaloguj się do panelu administracyjnego WordPressa i przejdź do Wtyczki → Dodaj nową.
- Wyszukaj „Hide Price Until Login for WooCommerce”. Sprawdź nazwę i autora, aby nie zainstalować innego rozszerzenia o podobnym działaniu.
- Kliknij Zainstaluj, a następnie Włącz.
- Otwórz WooCommerce → Hide Price Until Login.
- Skonfiguruj komunikat zastępujący cenę, np. „Zaloguj się, aby zobaczyć cenę i złożyć zamówienie”, a następnie zapisz ustawienia.
- Otwórz sklep w oknie prywatnym przeglądarki i sprawdź efekt na stronie produktu.
Zgodnie z opisem rozszerzenia mechanizm obejmuje produkty proste i wariantowe. Użytkownik niezalogowany powinien zobaczyć komunikat zamiast ceny, bez standardowego przycisku dodawania produktu do koszyka. Po zalogowaniu klient powinien odzyskać dostęp do ceny i możliwości zakupu.
Przykładowo hurtownia wyposażenia gastronomicznego sprzedaje urządzenie w dwóch wariantach zasilania. Kupujący wybiera wersję produktu, ale bez zalogowania nie poznaje jej ceny. Po zalogowaniu może sprawdzić właściwą kwotę i dokonać zakupu. Ważne, aby przetestować oba warianty osobno — ukrycie początkowego przedziału cenowego nie wystarcza, jeśli cena pojawia się później po wybraniu konkretnej opcji.
Komunikat powinien prowadzić użytkownika do kolejnego działania. Jeśli sklep dopuszcza samodzielną rejestrację, sprawdź również ustawienia WooCommerce → Ustawienia → Konta i prywatność oraz możliwość utworzenia konta na stronie „Moje konto”. Sam tekst „Zaloguj się” niewiele pomoże nowemu klientowi, który nie ma konta i nie wie, jak je uzyskać.
To rozwiązanie ma sens, gdy jedynym warunkiem zobaczenia ceny jest zalogowanie. Nie wystarcza natomiast do sprzedaży z cennikiem przeznaczonym wyłącznie dla zweryfikowanych kontrahentów. Zarejestrowane konto nie jest równoznaczne z zatwierdzeniem firmy jako partnera B2B.
Jak sprawdzić, czy ceny i przycisk koszyka rzeczywiście są ukryte?
Najczęstszy błąd pojawia się podczas testowania wtyczki. Administrator sprawdza stronę główną sklepu, widzi prawidłowy komunikat i uznaje konfigurację za zakończoną. Tymczasem ceny mogą pojawiać się w wyszukiwarce produktów, oknie szybkiego podglądu lub danych wysyłanych do przeglądarki.
Po aktywacji rozszerzenia wykonaj testy z dwóch niezależnych sesji: gościa w trybie incognito oraz zwykłego zalogowanego klienta. Nie ograniczaj się do konta administratora, ponieważ jego uprawnienia i dodatkowe narzędzia mogą zaburzać ocenę.
Sprawdź przede wszystkim:
- Katalog i karty produktów – cenę produktu prostego, przedział cen produktu wariantowego, ceny poszczególnych wariantów oraz promocje.
- Koszyk i zakup – nie tylko widoczność przycisku, lecz także próbę bezpośredniego dodania produktu do koszyka przez adres z parametrem
?add-to-cart=ID, gdzie ID oznacza identyfikator produktu. - Dodatkowe elementy motywu – Quick View, wyniki wyszukiwania AJAX, karuzele, produkty powiązane i niestandardowe listy produktów.
- Dane strukturalne JSON-LD – sprawdź kod źródłowy strony pod kątem
Product,Offeroraz pól zawierających cenę. - Interfejsy API i integracje – przetestuj Store API, uprawnienia REST API, eksportowane feedy produktowe oraz wykorzystywane bloki koszyka i finalizacji zamówienia.
- Pamięć podręczną – sprawdź zachowanie sklepu po wylogowaniu, ponownym zalogowaniu i odświeżeniu stron obsługiwanych przez cache lub CDN.
Szczególnej uwagi wymaga WooCommerce Store API, ponieważ standardowo udostępnia ono publiczne dane opublikowanych produktów, w tym informacje o cenach. Przykładowy adres do kontroli to /wp-json/wc/store/v1/products. Można również sprawdzić pojedynczy produkt przez /wp-json/wc/store/v1/products/ID.
Nie należy zakładać, że zmiana widoczności ceny w klasycznym szablonie produktu automatycznie modyfikuje odpowiedzi Store API. Podobnie REST API WooCommerce wymaga osobnej kontroli autoryzacji, a feedy przeznaczone dla Google Merchant Center czy zewnętrznych integracji mogą korzystać z danych niezależnych od wyglądu strony.
Dobrym przykładem problemu jest sklep działający z Cloudflare i wtyczką cache, np. LiteSpeed Cache albo WP Rocket. Jeżeli serwer lub CDN zapisze stronę zawierającą ceny wygenerowaną dla zalogowanego klienta, a następnie udostępni tę samą wersję gościowi, może dojść do ujawnienia cennika. W odwrotnej sytuacji zalogowany klient otrzyma stronę przeznaczoną dla gościa i nadal nie zobaczy cen.
Dlatego strony z treścią zależną od zalogowania muszą być odpowiednio rozdzielone w konfiguracji cache. Po zmianach należy wyczyścić pamięć podręczną WordPressa, serwera i CDN, a następnie ponowić testy w obu sesjach. Osobnej kontroli wymagają bloki Cart i Checkout, które wykorzystują Store API i nie zawsze zachowują się tak samo jak klasyczne szablony WooCommerce.
Istotne jest również to, że ukrywanie ceny przez CSS nie zabezpiecza cennika. Reguła display: none usuwa element jedynie z widoku strony. Cena może nadal pozostawać w HTML, odpowiedzi API lub danych strukturalnych. Gdy stawki są poufne, konieczna jest kontrola dostępu po stronie serwera, również przy pobieraniu danych i próbie zakupu.
Kiedy ukrywanie cen ma sens, a kiedy lepiej oddzielić sprzedaż B2C od B2B?
Ukrywanie cen sprawdza się przede wszystkim tam, gdzie dostęp do cennika stanowi część współpracy handlowej. Dotyczy to na przykład hurtowni części przemysłowych, dystrybutorów narzędzi czy dostawców opakowań, którzy oferują ceny zależne od uzgodnionych warunków zakupowych.
Nie oznacza to jednak, że każda hurtownia powinna automatycznie ukrywać ceny wszystkim niezalogowanym.
Rozważmy dystrybutora opakowań, który sprzedaje ten sam asortyment klientom detalicznym oraz odbiorcom zamawiającym regularnie po kilkaset sztuk. Jeśli ukryje wszystkie ceny, klient detaliczny straci możliwość szybkiego porównania oferty. Z kolei kontrahent hurtowy nadal będzie potrzebował właściwego cennika zależnego od umowy.
W takiej sytuacji lepszym rozwiązaniem jest jawny katalog B2C oraz osobna strefa B2B z dostępem do cen po zatwierdzeniu konta. Oprogramowanie powinno rozpoznawać uprawnienia klienta, np. przypisaną mu rolę hurtownika. Weryfikacja firmy może obejmować sprawdzenie NIP w odpowiednim rejestrze, danych CEIDG lub KRS oraz ręczną akceptację współpracy.
Samo zebranie NIP podczas rejestracji nie potwierdza jeszcze prawa do cen hurtowych. Wtyczka Hide Price Until Login for WooCommerce opiera się na rozróżnieniu użytkownika zalogowanego i niezalogowanego, dlatego nie zastępuje systemu zatwierdzania kontrahentów ani zarządzania cennikami dla różnych ról.
Ukrywanie cen ma również konsekwencje dla SEO i konwersji. Użytkownik trafiający z Google na produkt nie może od razu porównać jego ceny z konkurencją. Musi najpierw utworzyć konto lub zalogować się. Dla kupującego, który dopiero poznaje sklep, to dodatkowy etap zwiększający ryzyko rezygnacji.
Problem dotyczy także danych produktowych Google. Wyświetlanie informacji o cenie w rozszerzonych wynikach i ofertach produktowych zależy między innymi od prawidłowych danych Offer. Dla informacji o produktach umieszczanych przez sprzedawcę wymagana jest aktywna cena oferty.
Powstaje więc konkretna sprzeczność: jeśli cena zostanie usunięta także z danych strukturalnych, strona może utracić możliwość wyświetlania części rozszerzonych informacji produktowych. Jeśli pozostanie w publicznym JSON-LD, nie będzie rzeczywiście ukryta. Nie należy traktować indeksowania produktów i poufności cen jako dwóch niezależnych ustawień.
Przed wdrożeniem trzeba ustalić priorytet:
- Sklep wyłącznie B2B, z cenami dostępnymi po zwykłym logowaniu: prosta wtyczka może wystarczyć po przejściu testów wszystkich używanych kanałów.
- Hurtownia z zatwierdzaniem partnerów i różnymi cennikami: potrzebny jest mechanizm kontroli ról, akceptacji kont i uprawnień do zakupu.
- Sklep z dużym udziałem sprzedaży detalicznej: lepiej pozostawić ceny detaliczne publiczne, a warunki hurtowe przenieść do osobnej strefy.
Skuteczność takiej zmiany należy oceniać po danych, a nie po samej liczbie rejestracji. W GA4 sprawdź przejścia od karty produktu do logowania, liczbę rozpoczętych zakupów i transakcji. W Google Search Console obserwuj ruch na strony produktowe oraz raporty dotyczące danych produktów. Więcej kont nie oznacza automatycznie większej sprzedaży, zwłaszcza gdy część użytkowników rejestruje się tylko po to, by sprawdzić jedną cenę.
FAQ – najczęstsze pytania o ukrywanie cen w WooCommerce
Czy Hide Price Until Login for WooCommerce jest darmowa?
Tak. Wtyczka jest dostępna bezpłatnie w oficjalnym katalogu WordPress.org. Nie trzeba kupować licencji, aby korzystać z opisanych podstawowych funkcji.
Czy można ukryć ceny produktów z wariantami?
Tak. Autor deklaruje obsługę produktów prostych i wariantowych. Należy jednak sprawdzić ceny każdej odmiany po zmianie jej atrybutów, szczególnie przy niestandardowych szablonach produktów.
Czy zalogowany użytkownik automatycznie zobaczy ceny hurtowe?
Wtyczka pozwala wyświetlać ceny po zalogowaniu, ale nie weryfikuje statusu kontrahenta ani nie przyznaje indywidualnych rabatów. Do takich zastosowań potrzebne są dodatkowe reguły uprawnień i cen.
Czy ukrycie ceny oznacza, że Google jej nie odczyta?
Nie. Cena może nadal występować w danych strukturalnych, publicznych odpowiedziach API lub feedach. Każdy z tych kanałów wymaga osobnego sprawdzenia.
Czy można pozostawić włączone zakupy bez rejestracji?
Opis wtyczki przewiduje blokowanie zakupów dla gości. Nie należy jednak uznawać samego zniknięcia przycisku koszyka za wystarczający test. Trzeba sprawdzić bezpośrednie dodawanie produktów oraz proces zamówienia, również przy użyciu bloków WooCommerce.
Od czego zacząć wdrożenie?
Najpierw uruchom wtyczkę na kopii sklepu i sprawdź jeden produkt prosty oraz jeden wariantowy w sesji gościa i zalogowanego klienta. Następnie skontroluj Store API, JSON-LD i cache. Jeżeli niezalogowany użytkownik nadal może odczytać poufne ceny lub złożyć zamówienie, nie wdrażaj rozwiązania na produkcji, dopóki nie zostaną zamknięte te drogi dostępu.

