Historia cen: - Tabela wp_price_history z WP Cronem dziennym (snapshot cen) - AJAX endpoint apartamenty_get_price_history (zabezpieczony nonce) - Popup "Historia cen" w widgecie — vanilla JS, modal zgodny z projektem Jawnosc cen: - Endpointy /ceny-mieszkan.xml + /dane-gov-pl.xml (XSD-compliant) - Pliki MD5 dla obu XML - Strona admina: Narzedzia -> Jawnosc Cen z URL-ami do Ministerstwa - Transient cache 1h z inwalidacja przez cron Dokumentacja: docs/readme.md + docs/jawnosc-cen.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
Milestones
Completed milestone log for this project.
| Milestone | Completed | Duration | Stats |
|---|---|---|---|
| v0.1 Initial Release | 2026-03-12 | 1 dzień | 2 fazy, 3 plany, 6 plików |
✅ v0.1 Initial Release
Completed: 2026-03-12 Duration: 1 dzień
Stats
| Metric | Value |
|---|---|
| Phases | 2 |
| Plans | 3 |
| Files changed | 6 |
Key Accomplishments
- Tabela
wp_price_historyz WP Cronem dziennym — automatyczny snapshot cen wszystkich apartamentów - AJAX endpoint
apartamenty_get_price_historyzabezpieczony nonce — historia cen jako JSON - Popup „Historia cen" w widgecie — vanilla JS, modal zgodny z projektem (Barlow, #192c44)
- Cztery publiczne endpointy XML:
/ceny-mieszkan.xml,/ceny-mieszkan.md5,/dane-gov-pl.xml,/dane-gov-pl.md5 - Katalog XSD-compliant dla portalu dane.gov.pl z automatycznym URL przez
home_url() - Strona admina wp-admin → Narzędzia → Jawność Cen z URL-ami do skopiowania
- Transient cache XML (1h) z inwalidacją przy każdym cronie
- Dokumentacja klienta w
docs/jawnosc-cen.md— instrukcja zgłoszenia do Ministerstwa
Key Decisions
| Decyzja | Uzasadnienie |
|---|---|
Flat ACF meta keys zamiast get_field('information') |
ACF zapisuje dane jako płaskie klucze — bezpośredni get_post_meta |
| INSERT IGNORE w cronie | Historia to snapshot — jeden rekord na apt na dzień, idempotentny |
| XML jako czysty PHP string (ENT_XML1) | Brak gwarancji ext-dom na hostingu |
| Transient 1h + inwalidacja przez cron | Balans między wydajnością a świeżością danych |
| Wszystko w elementor-addon.php | Scope limit z planu — brak osobnych plików |