Graf histórie cien
Graf histórie cien vizualizuje zmeny cien produktu vo forme kompaktného sparkline SVG grafu. Zákazníci vidia, ako sa cena menila vo vybranom období (30, 90 alebo 180 dní), čo buduje transparentnosť a dôveru v akcie.
Zapnutie modulu
Section titled “Zapnutie modulu”Prejdite do WooCommerce > Polski > Moduly obchodu a zapnite Graf histórie cien. Graf sa objaví automaticky na stránkach produktov, ktoré majú uloženú históriu cien.
Funkcie
Section titled “Funkcie”- Sparkline graf vykreslený ako SVG (žiadna závislosť od JS knižníc)
- Konfigurovateľné obdobia: 30, 90 alebo 180 dní
- Zobrazenie minimálnej a maximálnej ceny v období
- Gradient výplne pod líniou grafu
- Bodka označujúca aktuálnu cenu
- Farby grafu konfigurovateľné v nastaveniach
- Automatické načítanie dát z repozitára Omnibus
Nastavenia
Section titled “Nastavenia”Konfigurácia v WooCommerce > Polski > Moduly obchodu > Graf histórie cien.
| Nastavenie | Predvolene | Popis |
|---|---|---|
days | 30 | Obdobie grafu v dňoch: 30, 90 alebo 180 |
show_min_max | true | Zobrazovať minimálnu a maximálnu cenu pod grafom |
color | #2563eb | Farba línie grafu a gradientu |
Možnosť v databáze: polski_price_history.
Vzhľad grafu
Section titled “Vzhľad grafu”Graf sa skladá z nasledujúcich prvkov:
- Línia - priebeh ceny v čase (stroke SVG)
- Gradient - polopriehľadná výplň od línie po spodok grafu
- Bodka - aktuálna cena produktu (posledný bod na grafe)
- Min/Max - štítky s minimálnou a maximálnou cenou (voliteľne)
Veľkosť grafu sa prispôsobuje kontajneru. Predvolená výška je 60px.
Technické detaily
Section titled “Technické detaily”Zdroj dát
Section titled “Zdroj dát”Graf načítava dáta z triedy OmnibusPriceRepository, ktorá uchováva históriu zmien cien vyžadovanú smernicou Omnibus. Každý dátový bod obsahuje dátum a cenu produktu.
Pre variabilné produkty sa graf generuje pre aktuálne vybraný variant (aktualizácia cez JavaScript po zmene variantu).
Vykresľovanie SVG
Section titled “Vykresľovanie SVG”Graf sa vykresľuje na strane servera ako inline SVG, žiadne externé knižnice, žiadne HTTP dopyty, žiadny JavaScript na kreslenie. Vďaka tomu graf:
- Zobrazí sa okamžite (žiadny flash of unstyled content)
- Je prístupný pre čítačky obrazovky (aria-label)
- Neovplyvňuje Core Web Vitals
// Zmeň obdobie grafu dynamickyadd_filter('polski/price_history/days', function (int $days, int $product_id): int { // Dlhšie obdobie pre sezónne produkty if (has_term('sezonne', 'product_cat', $product_id)) { return 180; } return $days;}, 10, 2);
// Zmeň pozíciu grafu na stránke produktuadd_filter('polski/price_history/hook', function (): string { return 'woocommerce_single_product_summary'; // predvolene: woocommerce_product_meta_start});
// Zmeň prioritu hookuadd_filter('polski/price_history/hook_priority', function (): int { return 25;});
// Filtruj dáta grafuadd_filter('polski/price_history/data', function (array $prices, int $product_id): array { return $prices;}, 10, 2);CSS triedy
Section titled “CSS triedy”.polski-price-history- hlavný kontajner.polski-price-history__chart- element SVG.polski-price-history__label- štítky min/max.polski-price-history__min- minimálna cena.polski-price-history__max- maximálna cena
.polski-price-history { margin: 1rem 0; padding: 0.75rem; background: #f9fafb; border-radius: 0.5rem;}ID modulu
Section titled “ID modulu”price_history_chart
Riešenie problémov
Section titled “Riešenie problémov”Graf sa nezobrazuje - skontrolujte, či je modul Omnibus zapnutý a či má produkt uloženú históriu cien. Nové produkty nebudú mať graf do prvej zmeny ceny.
Graf je prázdny/plochý - ak sa cena vo vybranom období nemenila, graf zobrazí plochú líniu. Toto je správne správanie.
Farby grafu nesedia k šablóne - zmeňte farbu v nastaveniach modulu alebo prepíšte v CSS: .polski-price-history__chart path { stroke: #your-color; }.
Nahlasovanie problémov: github.com/wppoland/polski/issues