This commit is contained in:
2026-04-22 22:00:50 +02:00
parent 16be247ce1
commit e979fbe755
46 changed files with 5302 additions and 274 deletions

View File

@@ -60,6 +60,47 @@ Fix: modal rezerwacji nie otwierał się na mobile/tablet — sekcja Elementor m
---
---
## Milestone v0.6: Cleanup — Pakiety ochronne (jedno źródło prawdy)
**Goal:** W sekcji „Pakiety ochronne" modala zostają wyłącznie pakiety z panelu WP (SOFT/PREMIUM). Pozycje insurance z Softra API („Zniesienie udziału") są usuwane z widoku i nie trafiają do podsumowania ani payloadu.
**Status:** Complete ✅
### Phase 15: Remove Softra-insurance z modala ✅ Complete
Usunięty kontener `#carei-insurance-container` + divider w widgecie PHP. W JS usunięta zmienna `insuranceContainer` i render insuranceItems. Pozycje pricelist zawierające `ubezp|ochrony|zniesienie|insurance` są dropowane — nie trafiają do extras, podsumowania ani do `makebooking` payloadu. Pakiety WP (SOFT/PREMIUM) z Phase 13 są jedynym źródłem prawdy.
---
## Milestone v0.7: Dwujęzyczność (PL/EN) widgetów Carei
**Goal:** Plugin `carei-reservation` (modal, hero search, admin, mapa, grid miast, grid oddziałów) działa dwujęzycznie PL/EN zgodnie z bieżącym językiem Polylang. Obejmuje: (1) i18n refactor pluginu, (2) dwujęzyczne pakiety ochronne + mapowanie błędów Softra, (3) tłumaczenie EN + QA.
**Status:** Complete ✅
### Phase 16: i18n refactor pluginu ✅ Complete
Plan 16-01 ukończony. 8 plików PHP z user-facing stringami w `__()`/`esc_html__()`/`esc_attr__()` (~105 stringów), textdomain `carei-reservation` ładowany na `plugins_loaded`. JS (1573 linie): ~70 literałów zmigrowanych do `window.careiI18n` przez `wp_localize_script`, helper `pluralPl()` dla polskich form. Wygenerowany `.pot` z 157 unikalnymi msgid. PL UI bez regresji (verified).
### Phase 17: Dwujęzyczne pakiety ochronne + mapowanie błędów Softra ✅ Complete
Plan 17-01 ukończony. Panel pakietów z polami `name_en`/`description_en` + sanitize/save. REST `/protection-packages` z `resolve_locale()` (`?lang=``determine_locale()` fallback) zwraca wariant per locale z fallbackiem PL; klucze `_en` nie wyciekają w payloadzie. `Carei_Softra_API::extract_softra_message()` + `map_error_message()` ze słownikiem 13 komunikatów (exact + fuzzy prefix + graceful passthrough). Frontend `loadProtectionPackages()` dodaje `?lang=` na podstawie `document.documentElement.lang`.
### Phase 18: Tłumaczenie EN (.po/.mo) + Flatpickr ✅ Complete
Plan 18-01 ukończony. `carei-reservation-en_US.po` + `.mo` (158 wpisów) + kopia en_GB; własny PHP kompilator `po2mo.php` (msgfmt niedostępny). **Scope addition:** Flatpickr 4.6.13 (CDN jsdelivr) jako cross-browser date picker z locale PL/EN dla modal (static:true — popup w container) + hero (default). `disableMobile:true` dla spójności UX. Kompaktowy CSS theme w kolorach Carei (#2F2482). Graceful fallback do native picker.
---
## Milestone v0.8: Admin-managed tłumaczenia extras
**Goal:** Panel administratora do zarządzania tłumaczeniami dynamicznych nazw dodatkowych opcji (extras) zwracanych z Softra API. Plugin auto-zbiera napotkane PL nazwy, admin wypełnia tłumaczenia EN w UI, frontend EN automatycznie używa.
**Status:** Complete ✅
### Phase 19: Extras translations admin panel ✅ Complete
Plan 19-01 ukończony. WP options `carei_extras_seen` (auto-collected) + `carei_extras_translations` (admin override). Static helpery w `Carei_Admin_Panel`: `remember_extra_name()`, `get_extras_seen()`, `get_extras_translations()`, `translate_extra_name()`. Submenu `Rezerwacje → Tłumaczenia extras` (nonce + sanitize + redirect). `Carei_REST_Proxy::get_pricelist()` z runtime auto-collect + per-locale name replacement z fallbackiem do PL. Zero zmian w JS.
---
### Backlog
- Eksport CSV/PDF rezerwacji
- Email notyfikacje