Price History (Omnibus) for WooCommerce to darmowa wtyczka, która spełnia obowiązek wynikający z dyrektywy UE 2019/2161 (Omnibus) i polskiej Ustawy o informowaniu o cenach (art. 4 ust. 2). Po aktywacji plugin sam zaczyna nasłuchiwać każdą zmianę ceny w sklepie i przy każdej promocji wyświetla wymagany komunikat:
„Najniższa cena z 30 dni przed obniżką: 150,00 zł”
Bez konfiguracji. Bez płacenia. Bez wpływu na wydajność sklepu.
⚖️ Podstawa prawna: dyrektywa UE 2019/2161 (Omnibus), w mocy od 28 maja 2022 r. + polska Ustawa o informowaniu o cenach towarów i usług (art. 4 ust. 2), w mocy od 1 stycznia 2023 r. Brak zgodności = ryzyko kary do 10% rocznego obrotu firmy nakładanej przez UOKiK.
Co robi wtyczka
🔒 Automatyczne nasłuchiwanie zmian cen
Plugin hook’uje się w woocommerce_update_product i woocommerce_update_product_variation. Każda zmiana ceny — przez panel admin, REST API, WP-CLI, importer CSV, lub kod własny — jest natychmiast zapisywana w dedykowanej tabeli wraz ze znacznikiem czasu.
🛡️ Failsafe: codzienny snapshot
Cron raz na dobę sprawdza, czy każdy opublikowany produkt ma wpis w ostatnich 24 godzinach. Jeśli przegapił coś nietypowego (np. import bezpośrednio do bazy), automatycznie dosypuje brakujące wpisy. Maksymalny dryf: 1 dzień.
📐 Dwie metody liczenia 30-day-low
- Omnibus (domyślna, prawnie poprawna) — okno 30 dni od momentu rozpoczęcia bieżącej promocji. Zgodne z literą art. 4 ust. 2 ustawy.
- Rolling — proste okno [dzisiaj−30, dzisiaj]. Łatwiejsze do zrozumienia, ale nie jest ściśle zgodne gdy produkt jest na promocji już kilka dni.
Plugin domyślnie używa Omnibus i automatycznie spada do Rolling tylko gdy nie ma jeszcze historii sprzed promocji.
🎨 Pełna kontrola nad wyświetlaniem
- Pozycja: pod ceną (zalecane) lub nad ceną
- Lokalizacje: strona produktu (wymagane przez Omnibus), shop loop, koszyk
- Etykieta: w pełni edytowalna — używaj własnej formuły, np. „Najtańsza cena ostatnich 30 dni: %s”
- Dwie etykiety dla scenariuszy „w promocji” i „nie w promocji” (gdy chcesz pokazywać zawsze)
- Custom CSS — wklej własne style bez modyfikacji template’ów
🧩 Wsparcie produktów wariacyjnych
Każda wariacja ma osobną historię cen. Notatka na karcie produktu automatycznie aktualizuje się gdy klient wybierze inny wariant (rozmiar, kolor itp.).
📊 Mini-wykres w panelu admina
W edycji każdego produktu pojawia się metabox z wykresem historii cen (Chart.js). Możesz na bieżąco weryfikować, co plugin zarejestrował dla danego produktu i jego wariacji.
🛡️ Bezpieczne uninstall
Tabela historii cen jest traktowana jako materiał dowodowy regulacyjny — domyślnie nie kasuje się ani przy deaktywacji, ani przy odinstalowaniu pluginu. Tylko explicit toggle „Skasuj dane przy odinstalowaniu” + uninstall = drop tabeli. Standardowy pattern dla compliance plugins.
⚡ Bez wpływu na wydajność
- Wyniki obliczeń cache’owane przez 12 godzin w transientach
- Cache automatycznie inwalidowany tylko przy zmianie ceny danego produktu
- Tabela historii indexed na
(product_id, variation_id, captured_at)— typowy odczyt < 5ms - Zero AJAX-ów na frontendzie, zero zewnętrznych requestów
🌍 Pełne wsparcie i18n
Plugin ships z bundlowanym polskim tłumaczeniem i angielskim source. Auto-detect locale przez WP — sklep w pl_PL widzi polski tekst, w en_US angielski. Wsparcie WPML / Polylang przez String Translation (planowane w 1.1).
⚙️ Integracja z WP-CLI
wp wpnest-ph snapshot # wymuś snapshot wszystkich produktów
wp wpnest-ph cleanup # uruchom cleanup retencji
wp wpnest-ph backfill # backfill cały sklep
🔌 Compatible z
- WooCommerce 7.0+ (testowane do 10.x)
- HPOS (custom order tables)
- Większość theme’ów — używa filtra
woocommerce_get_price_htmljako primary integration point (działa też w themed niewołanych przezwoocommerce_single_product_summary) - Block themes / FSE
- Każda waluta WC
Wymagania techniczne
- WordPress 6.2+
- PHP 7.4+ (zalecane 8.1+)
- WooCommerce 7.0+
- Brak zewnętrznych zależności — czysty PHP + vanilla JS
Instalacja
- Pobierz wtyczkę przez Wtyczki → Dodaj nową w panelu WordPress (szukaj „Price History Omnibus”)
- Aktywuj
- Przejdź do WooCommerce → Price History żeby (opcjonalnie) dostosować ustawienia
- Gotowe — plugin sam zaczyna zapisywać historię i wyświetlać notatkę przy promocjach
Plugin uruchamia background backfill istniejących produktów — typowo kończy się w kilka minut dla sklepów do 10 000 produktów.
Open source / GPL
Cały kod jest na licencji GPLv2+. Możesz go modyfikować, redystrybuować i używać komercyjnie.
Potrzebujesz więcej?
Jeśli prowadzisz sklep z dużym ruchem albo chcesz proaktywnie wykrywać ryzyko przed inspekcją UOKiK, sprawdź Price History Pro — dodaje:
- Detektor „gimnastyki cenowej” (auto-flag produktów z podbitą ceną przed promocją)
- Publiczny wykres cen na karcie produktu (Keepa-style)
- Eksport CSV do audytów UOKiK
- Tamper-proof hash chain (materiał dowodowy o sile cyfrowego podpisu)
- Webhooks (Slack / Discord)
- White-label dla agencji
- Per-category konfiguracja
- Black Friday Safe Mode
Zobacz pełną listę funkcji Pro →
Tab: FAQ
Czy plugin jest naprawdę darmowy?
Tak — plugin jest na licencji GPLv2+ i nie wymaga konta, klucza ani aktywacji. Wszystkie funkcje opisane na tej stronie są dostępne bez limitu i bez opłat.
Czy działa z dowolnym theme’em?
Tak. Plugin używa filtra woocommerce_get_price_html jako podstawowego punktu integracji — działa nawet w theme’ach, które nadpisują single-product.php i nie wywołują woocommerce_single_product_summary. Dla wariacyjnych produktów dodatkowo nasłuchuje przez JS na found_variation event.
Co jeśli mój theme renderuje cenę inaczej?
Możesz nadpisać template omnibus-notice.php w swoim theme’ie (yourtheme/wpnest-ph/omnibus-notice.php) i wstawić go ręcznie tam gdzie potrzeba.
Co się dzieje z danymi po deaktywacji?
Nic — tabela wp_wpnest_ph_history jest zachowywana jako materiał dowodowy. Tylko explicit toggle w ustawieniach + uninstall powoduje usunięcie danych. To intencjonalne — UOKiK może żądać udokumentowania historii cen kilka miesięcy wstecz.
Jak długo plugin trzyma dane?
Domyślnie 90 dni (3× okno Omnibus). Możesz zmienić retencję w ustawieniach, minimum 30 dni. Stare wpisy automatycznie usuwane przez codzienny cron.
Jak plugin działa z produktami wariacyjnymi?
Każda wariacja ma osobną historię. Notatka na karcie produktu aktualizuje się automatycznie gdy klient wybierze konkretny wariant — przez frontend JS hook na found_variation.
Widzę „Najniższa cena: X” ale X = obecna cena promocyjna. Bug?
Zwykle oznacza to, że plugin został aktywowany po rozpoczęciu obecnej promocji i nie ma jeszcze historii sprzed niej. Plugin auto-spada do metody Rolling jako fallback. Po ~31 dniach historii Omnibus method zacznie działać poprawnie. Możesz też wymusić snapshot przez wp wpnest-ph snapshot.
Czy plugin spowolni mój sklep?
Nie. Wszystkie obliczenia cache’owane przez 12h w transientach. Frontend wykonuje 1 zapytanie do bazy danych (cached) per produkt na request. Tabela ma odpowiednie indeksy. Typowy overhead: < 5ms.
Czy istnieje wersja Pro?
Tak — Price History Pro dodaje detektor naruszeń, publiczny wykres dla klientów, audytowy eksport CSV, webhooks, white-label i analitykę. Free version nigdy nie zostanie ograniczona ani zmuszona do upgrade’u — Pro to dodatek dla zaawansowanych use-case’ów.
Czy plugin jest zgodny z RODO?
Tak — plugin nie zbiera ani nie przesyła żadnych danych użytkowników. Zapisuje wyłącznie ceny produktów (które są publiczne) ze znacznikiem czasu. Brak phoning home, brak external requests.
Czy działa bez Polski locale?
Tak. Source strings są w angielskim, polski język jest bundlowany. Sklep w innych językach (EN/DE/FR/ES) zobaczy angielską wersję domyślnie. Tłumaczenie na Twój język możesz dodać przez Loco Translate albo translate.wordpress.org.