Hide Price Pro - Zaloguj się, aby zobaczyć cenę: ukrywanie cen B2B i hurtowych wg gości, krajów lub produktów
Ukryj ceny przed tymi, którzy nie powinni ich widzieć, i pokaż w ich miejsce zaproszenie do logowania lub własny tekst. Wybierasz jedną regułę — goście, wybrane kraje albo wybrane produkty — a cena jest usuwana po stronie serwera, zanim strona powstanie, więc w ogóle nie trafia do kodu HTML. Na listingach znika z nią przycisk dodaj do koszyka, a produkty objęte ograniczeniem są usuwane z koszyka po stronie serwera, więc ręcznie spreparowany link nie pomoże. Żaden plik core, szablon motywu ani override nie zostaje naruszony. Stworzony dla B2B, hurtu i sprzedaży na zapytanie. Dla PrestaShop 1.7 – 9.
Dla sklepów, w których cena nie jest dla każdego
Ceny hurtowe, których nie chcesz pokazywać konkurencji. Katalog, który sprzedajesz do jednych krajów, a do innych nie. Produkty wyceniane indywidualnie zamiast z cennika. We wszystkich trzech przypadkach odpowiedź jest ta sama: pokaż produkt, ukryj liczbę i daj odwiedzającemu powód, by się skontaktował albo zalogował.
Jedna reguła, wybrana świadomie
Strona konfiguracji daje dokładnie jeden wybór, a nie stos przełączników, które mogą sobie nawzajem przeczyć:
- Nikt — moduł jest wstrzymany — nic nie jest ukrywane.
- Odwiedzający, którzy nie są zalogowani — goście tracą cenę w całym katalogu.
- Odwiedzający z krajów wybranych poniżej — wszyscy pozostali widzą ją normalnie.
- Wszyscy, ale tylko na produktach oznaczonych — cena znika na produktach, które oznaczysz, i nigdzie indziej.
Wcześniejsze wersje miały trzy niezależne przełączniki, a zapis nieprawidłowej kombinacji po prostu się nie udawał. Jeden wybór na zasadzie wykluczania sprawia, że niemożliwa konfiguracja nie może w ogóle powstać — a opcja Nikt oznacza, że wstrzymanie modułu nigdy nie wymaga jego odinstalowania. Otwórz zakładkę Moduły w produkcie, gdy aktywna jest inna reguła, a moduł wprost Cię uprzedzi, że opcje per produkt nie mają teraz żadnego wpływu, zamiast pozwolić Ci ustawić coś, co po cichu nic nie robi.
Cena znika, zanim strona powstanie
To jest sedno sprawy. W PrestaShop 1.7.5 i nowszych moduł podpina się pod actionPresentProduct oraz actionPresentProductListing i przepisuje produkt po stronie serwera: show_price wyłączone, ciągi z ceną wyczyszczone, adres dodania do koszyka usunięty. Cena w ogóle nie trafia do kodu HTML, więc nie czeka w źródle strony na tego, kto zechce jej poszukać.
Ukrywanie obejmuje każde miejsce, w którym pojawia się cena: strony kategorii, wyniki wyszukiwania, widgety na stronie głównej — polecane produkty, bestsellery, nowości, promocje — szybki podgląd oraz samą stronę produktu. Na stronach listingu razem z ceną znika przycisk dodaj do koszyka. Niewielka warstwa JavaScript obsługuje miniatury na listingach i profilaktycznie usuwa znaczniki ceny, które nietypowy motyw mógłby mimo wszystko wyrenderować — to jednak druga linia obrony, a nie sam mechanizm.
Nie da się tego obejść zakupem
Ukrywanie ceny niewiele daje, jeśli ktoś nadal może wrzucić produkt do koszyka. Przy każdym zapisie koszyka, a następnie ponownie na stronie koszyka i zamówienia, produkty objęte ograniczeniem są usuwane po stronie serwera — więc ręcznie spreparowany link dodaj do koszyka nic nie daje.
Jeśli kraju odwiedzającego nie da się ustalić, jest on traktowany jako objęty ograniczeniem. Reguła domyka się bezpiecznie: nigdy nie ujawni ceny tylko dlatego, że geolokalizacja była niepewna.
Wyskakujące okna szybkiego podglądu obsłużone bez ingerencji
Moduły szybkiego podglądu renderują ceny przez własne kontrolery AJAX i to właśnie tam takie maskowanie zwykle przecieka. Te żądania są przechwytywane na etapie dispatchu, a wyświetlanie ceny w module zostaje wymuszone jako wyłączone w pamięci, tylko dla tego jednego żądania — jego pliki i ustawienia w bazie danych pozostają nietknięte. MutationObserver czyści wstrzykiwane okna i umieszcza w nich Twój komunikat zastępczy, a kontrola stanu wypisuje, jakie moduły szybkiego podglądu wykryła w Twoim sklepie.
Co widzi odwiedzający zamiast ceny
Dla reguły gości i reguły krajów: wielojęzyczny komunikat, który sam napiszesz, opcjonalnie z automatycznym przyciskiem Zaloguj się, który po zalogowaniu odsyła odwiedzającego z powrotem do oglądanego produktu.
Dla reguły produktowej: pole Treść wyświetlana zamiast ceny ustawiane per produkt i per język, w którym dozwolony jest HTML — "Poproś o wycenę", numer telefonu, link do kontaktu, cokolwiek pasuje — albo zupełnie nic, jeśli zostawisz je puste.
Kontrola stanu, która odpowiada, zanim zdążysz zapytać
Na stronie konfiguracji znajdziesz kontrolę stanu, która milczy, gdy wszystko jest w porządku, i odzywa się, gdy nie jest. W zdrowym sklepie po prostu potwierdza aktywną regułę, liczbę oznaczonych produktów, obsługiwane moduły szybkiego podglądu oraz to, że nie zalegają żadne pliki ze starej wersji.
Reszta pojawia się tylko wtedy, gdy naprawdę Cię dotyczy: ostrzeżenie, gdy reguła krajowa jest włączona, ale geolokalizacja PrestaShop jest wyłączona — wraz z bezpośrednim linkiem do jej włączenia, bo bez niej reguła nie odróżni odwiedzających; informacja, gdy tryb katalogu i tak ukrywa już wszystkie ceny w całym sklepie i maskuje efekt działania modułu; informacja, gdy Twój PrestaShop jest starszy niż 1.7.5; oraz przycisk Napraw teraz, gdy zostaną wykryte pozostałości po wersji 1.x. Nikt nie każe Ci przedzierać się przez ścianę zielonych ptaszków, żeby znaleźć tę jedną rzecz, która ma znaczenie.
Wersja 2 usunęła lukę bezpieczeństwa i górę operacji na plikach core
Wersja 1.x instalowała się przez zastępowanie plików core — kopia ProductListingFrontController dla każdej wersji PrestaShop, do tego szablony motywu classic i override klas ps_featuredproducts, ps_bestsellers, ps_newproducts, ps_specials oraz ProductController. Każda aktualizacja PrestaShop była wtedy ryzykiem białej strony.
Wersja 2.0 to całkowite przepisanie oparte wyłącznie na hookach. Żadnego pliku core, żadnego szablonu motywu, żadnego override. Aktualizacje PrestaShop nie mogą tego zepsuć, bo wewnątrz PrestaShop nie ma nic z modułu, co dałoby się zepsuć.
Usunęła też ekrany masowego importu i eksportu CSV, które działały jako samodzielne skrypty zupełnie bez uwierzytelniania — była to realna, a nie teoretyczna dziura w bezpieczeństwie. Jeśli potrzebujesz masowego oznaczania produktów, planowana jest wersja oparta na zabezpieczonym kontrolerze administracyjnym.
Aktualizacja z 1.x sprząta po starej wersji
Podmień folder i otwórz stronę Konfiguruj modułu — wykryje oczekującą aktualizację i przeprowadzi migrację w miejscu, zachowując Twoją listę krajów i teksty per produkt. Zamieni trzy stare przełączniki na jedną regułę, przywróci kontroler core i szablony motywu, które zastąpiła wersja 1.x, z pozostawionych przez nią kopii zapasowych, usunie zalegające override klas, przebuduje indeks klas i wyczyści cache szablonów. Wszystko, czego nie da się przywrócić automatycznie, wypisze kontrola stanu wraz z przyciskiem Napraw teraz.
Dwie praktyczne uwagi: nie używaj przycisku Aktualizuj w Menedżerze modułów — działa on wyłącznie dla modułów pobranych z Addons i dla modułu zaktualizowanego na dysku zgłasza "Could not perform action upgrade for module undefined"; ścieżką aktualizacji jest otwarcie strony Konfiguruj. I nigdy nie używaj przycisku Resetuj, który kasuje konfigurację.
Kompatybilność
PrestaShop 1.7 do 9, w ośmiu językach: angielskim, francuskim, hiszpańskim, holenderskim, niemieckim, polskim, tureckim i włoskim. Pełne maskowanie ceny po stronie serwera od wersji 1.7.5; w 1.7.0–1.7.4 hooki prezentera produktu nie istnieją, więc ukrywanie opiera się wyłącznie na warstwie CSS i JavaScript — kontrola stanu poinformuje Cię, czy dotyczy to Twojego sklepu. Dane per produkt przetrwają szybką edycję, aktualizacje stanów magazynowych i zapisy przez web service, a wiersze są automatycznie usuwane wraz z usunięciem produktu.
Najczęściej zadawane pytania
Czy zdeterminowany odwiedzający może mimo wszystko znaleźć cenę w źródle strony?
Nie, nie w 1.7.5 i nowszych. Cena jest usuwana po stronie serwera, zanim powstanie HTML, więc w źródle nie ma czego szukać.
Czy ktoś może dodać ukryty produkt do koszyka bezpośrednim linkiem?
Nie. Produkty objęte ograniczeniem są usuwane z koszyka po stronie serwera przy każdym zapisie koszyka i ponownie na stronie koszyka oraz zamówienia.
Czy mogę ukryć ceny tylko przed gośćmi, a klientom je pokazać?
Tak — to reguła odwiedzający, którzy nie są zalogowani, a do tego możesz pokazać przycisk Zaloguj się, który po zalogowaniu odsyła ich z powrotem do produktu.
Co się stanie, jeśli nie da się ustalić kraju odwiedzającego?
Zostanie potraktowany jako objęty ograniczeniem. Reguła domyka się bezpiecznie, zamiast ryzykować ujawnienie ceny. Pamiętaj, że reguła krajowa wymaga włączonej geolokalizacji PrestaShop; kontrola stanu ostrzeże Cię o tym i podlinkuje ustawienie wprost.
Czy aktualizacja PrestaShop to zepsuje?
Nie. Wersja 2 nie rusza żadnego pliku core, szablonu motywu ani override — działa w całości przez hooki, więc wewnątrz PrestaShop nie ma nic, co aktualizacja mogłaby zepsuć.
Czy działa z wyskakującymi oknami szybkiego podglądu?
Tak. Te żądania AJAX są przechwytywane, a wyświetlanie ceny wymuszone jako wyłączone w pamięci wyłącznie dla tego jednego żądania; pliki i ustawienia samego modułu szybkiego podglądu pozostają niezmienione.
Aktualizuję z wersji 1.x — co muszę po niej posprzątać?
Nic ręcznie. Otwórz stronę Konfiguruj, a moduł sam przeprowadzi migrację, przywróci pliki core zastąpione przez wersję 1.x i usunie zalegające override. Korzystaj ze strony Konfiguruj, a nie z przycisku Aktualizuj w Menedżerze modułów, i nigdy nie używaj przycisku Resetuj.
Moje ceny są ukryte wszędzie, choć wcale się tego nie spodziewałem. Sprawdź, czy nie jest włączony tryb katalogu samego PrestaShop — ukrywa on wszystkie ceny w całym sklepie, niezależnie od tego modułu. Kontrola stanu sygnalizuje to, gdy ma to miejsce. A jeśli chcesz zatrzymać moduł bez odinstalowywania go, ustaw regułę na Nikt.
-
KompatybilnośćPrestashop 1.7
Prestashop 8
Prestashop 9 -
Dostępne Tłumaczenia ModułuAngielski
Francuski
Hiszpański
Niderlandzki
Niemiecki
Polski
Turecki
Włoski
MEG Venture
4 innych produktów w tej samej kategorii
| Wersja | 2.0.2 |
|---|---|
| Ostatnia aktualizacja | 2026-07-30 |
| Dziennik zmian | - [2026-07-30] Backfill missing translation keys for multiple languages in the Hide Price Pro module - [2026-07-24] Add Polish and Turkish translations for Hide Price Pro module settings and messages - [2026-07-23] Bump version to 2.0.2 and update changelog to document upgrade fix for module stability - [2026-07-23] Translate module strings in Turkish for Hide Price Pro, updating messages related to pricing visibility, settings, and user prompts to enhance clarity for Turkish-speaking users. - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add missing translation files (fr, de, pl, nl, tr, it, es) - [2026-07-09] fix: Update README and PHP display name for consistency in module title - [2026-07-09] feat: Add Hide Price Pro module with configuration and front-end functionality - [2026-06-21] feat: Add custom price handling to ProductListingFrontController - [2023-10-02] Update customprice.php - [2023-09-17] v1.5.5 - [2023-09-05] v1.5.3 - [2022-09-27] upgrades for the productlistingfront controller - [2022-05-22] v1.5.2 - [2022-02-19] v1.5.2 - [2021-07-22] v1.5.1 - [2021-02-21] Custom price field save fix - [2020-10-19] First release of v1.5.0 - [2020-10-19] Initial commit |
Komentarze (2)
Chwilowo nie możesz polubić tej opinii
Zgłoś komentarz
Zgłoszenie wysłane
Twoje zgłoszenie nie może zostać wysłane