Files
carei.pagedev.pl/.paul/phases/15-remove-softra-insurance/15-01-PLAN.md
2026-04-22 22:00:50 +02:00

8.4 KiB
Raw Blame History

phase, plan, type, wave, depends_on, files_modified, autonomous, delegation
phase plan type wave depends_on files_modified autonomous delegation
15-remove-softra-insurance 01 execute 1
wp-content/plugins/carei-reservation/includes/class-elementor-widget.php
wp-content/plugins/carei-reservation/assets/js/carei-reservation.js
false off
## Goal Usunąć z modala rezerwacji wyświetlanie pozycji ubezpieczeniowych pobieranych z Softra API (np. "Zniesienie udziału własnego"). W sekcji "Pakiety ochronne" pozostają wyłącznie kafelki SOFT/PREMIUM zarządzane w panelu WP (Phase 13).

Purpose

Po wdrożeniu Phase 13 (pakiety WP) w sekcji "Pakiety ochronne" równolegle wyświetlały się dwa źródła: (1) kafelki WP (SOFT/PREMIUM), (2) pozycje z Softra pricelist rozpoznawane heurystyką nazwy ("zniesienie"/"insurance"). Powoduje to dublowanie oferty i konflikt z polityką cenową Carei. Zostawiamy jedno źródło prawdy — panel WP.

Output

  • Dynamiczny kontener #carei-insurance-container usunięty z szablonu widgetu
  • Logika JS klasyfikująca i renderująca insuranceItems usunięta
  • Pozycje Softra rozpoznane jako „zniesienie/insurance” są odfiltrowywane całkowicie (nie trafiają ani do kafelków, ani do extraItems, ani do podsumowania)
  • Pakiety WP (SOFT/PREMIUM) działają bez zmian
@.paul/PROJECT.md @.paul/ROADMAP.md @.paul/STATE.md @.paul/phases/13-protection-packages/13-02-SUMMARY.md @wp-content/plugins/carei-reservation/includes/class-elementor-widget.php @wp-content/plugins/carei-reservation/assets/js/carei-reservation.js

<acceptance_criteria>

AC-1: Brak renderowania pozycji Softra-insurance

Given użytkownik otworzył modal rezerwacji i wybrał pojazd/daty
When załaduje się lista dodatków z Softra pricelist zawierająca pozycję "Zniesienie udziału własnego"
Then pozycja ta NIE pojawia się w sekcji "Pakiety ochronne"
  And NIE pojawia się w sekcji "Opcje dodatkowe"
  And w DOM nie istnieje element `#carei-insurance-container`

AC-2: Pakiety WP działają bez zmian

Given w panelu WP są zdefiniowane pakiety SOFT i PREMIUM z ceną/dobę
When użytkownik otworzy modal
Then w sekcji "Pakiety ochronne" widoczne są wyłącznie kafelki SOFT i PREMIUM
  And zaznaczenie pakietu dodaje wiersz do podsumowania i do `grandTotal` (bez zmian względem Phase 13)

AC-3: Brak wycieku do podsumowania i submit payload

Given użytkownik przechodzi do podsumowania bez zaznaczania żadnego pakietu WP
When pricelist zawierał pozycję „Zniesienie udziału"
Then pozycja NIE pojawia się w tabeli podsumowania
  And nie jest wysyłana w `priceItems` w `makebooking`
  And całkowity koszt nie zawiera składnika ubezpieczenia Softra

</acceptance_criteria>

Task 1: Usunięcie kontenera insurance z szablonu widgetu wp-content/plugins/carei-reservation/includes/class-elementor-widget.php W `class-elementor-widget.php` (ok. linia 158161) usunąć blok: - `` - `
...komentarz...
` Zachować strukturę sekcji „Pakiety ochronne" z kontenerem `#carei-protection-packages-container` (kafelki SOFT/PREMIUM). Unikać: usuwania dividerów sekcji zewnętrznej ani innych pól formularza. Zmieniamy wyłącznie divider wewnętrzny + kontener insurance. grep -n "carei-insurance-container" wp-content/plugins/carei-reservation/includes/class-elementor-widget.php → brak wyników. Ręcznie: otwórz modal, sekcja „Pakiety ochronne" pokazuje tylko kafelki WP. AC-1 satysfakcjonowane: kontener nie istnieje w DOM. Task 2: Usunięcie logiki insurance w carei-reservation.js wp-content/plugins/carei-reservation/assets/js/carei-reservation.js 1. Usunąć zmienną `insuranceContainer` z deklaracji (ok. linia 82) oraz jej przypisanie w init (`insuranceContainer = document.getElementById('carei-insurance-container');` ok. linia 107). 2. W funkcji renderującej dodatki (ok. linie 503525): - Usunąć lokalną zmienną `insuranceItems` i blok `if (insuranceContainer) { ... }`. - Zastąpić heurystykę „dopasuj do insurance LUB extras" filtrowaniem typu **drop** — pozycje zawierające w nazwie `zniesienie` lub `insurance` (case-insensitive) mają być **pomijane całkowicie** (nie trafiają do `extraItems`). - Pozostałe pozycje trafiają jak dotychczas do `extraItems` i są renderowane w `extrasContainer`. 3. Sprawdzić, że przy budowaniu payloadu (`priceItems` / `makebooking`) nie ma osobnej ścieżki pobierającej z `insuranceContainer` — jeśli jest, usunąć. Unikać: zmian w logice Phase 13 (renderProtectionPackages, onProtectionCardClick, getSelectedProtectionPayload) — ten kod zostaje nietknięty. Nie usuwać `extrasContainer`. grep -nE "insuranceContainer|insuranceItems|carei-insurance-container" wp-content/plugins/carei-reservation/assets/js/carei-reservation.js → brak wyników. grep -nE "zniesienie|insurance" wp-content/plugins/carei-reservation/assets/js/carei-reservation.js → tylko w filtrze drop. AC-1, AC-3 satysfakcjonowane: pozycje Softra-insurance są dropowane przed renderem i przed budową payloadu. - Usunięty kontener `#carei-insurance-container` i jego divider w szablonie PHP. - Usunięta zmienna + render logic `insuranceItems` w JS; pozycje Softra „Zniesienie udziału"/„insurance" są pomijane. - Pakiety WP (SOFT/PREMIUM) bez zmian. 1. Wypchnij przez SFTP (albo zweryfikuj lokalnie, jeśli dostępny). 2. Otwórz stronę z modalem rezerwacji (carei.pagedev.pl) z DevTools. 3. Uzupełnij krok 1 formularza tak, aby pricelist z Softra został pobrany (wybór dat/oddziału/klasy). 4. Sprawdź sekcję „Pakiety ochronne": - Widoczne TYLKO kafelki SOFT i PREMIUM z panelu WP. - Brak pozycji „Zniesienie udziału własnego" ani żadnej innej z Softra. 5. Sprawdź sekcję „Opcje dodatkowe": - Pozycje Softra są (fotelik, GPS itd.), ale brak pozycji zawierających słowo „zniesienie" lub „insurance". 6. W DevTools → Elements: `document.getElementById('carei-insurance-container')` → `null`. 7. Przejdź do podsumowania bez zaznaczania pakietu WP: - W tabeli brak wiersza ubezpieczenia Softra. - `grandTotal` = suma Softra (bez insurance) (+ pakiet WP jeśli zaznaczony). 8. Zaznacz pakiet SOFT → kafelek zaznacza się, wiersz pakietu pojawia się w podsumowaniu, total rośnie o cena×doba. Napisz "approved" aby zamknąć plan, lub opisz problemy do poprawy.

DO NOT CHANGE

  • includes/class-admin-panel.php — panel WP pakietów (Phase 13 stable)
  • includes/class-rest-proxy.php endpoint /protection-packages
  • Logika Phase 13 w JS: loadProtectionPackages, renderProtectionPackages, onProtectionCardClick, getSelectedProtectionPayload, sekcja podsumowania z pakietem WP
  • Kontener #carei-protection-packages-container i jego style
  • Inne sekcje formularza (segment, daty, lokalizacja, wyjazd zagraniczny, dane osobowe)

SCOPE LIMITS

  • Nie zmieniamy heurystyki klasyfikacji innych pozycji extras
  • Nie dotykamy backend (PHP) poza szablonem widgetu
  • Nie ruszamy CSS — osierocone reguły .carei-form__protection-divider w CSS mogą zostać (brak użycia == brak efektu)
  • Nie zmieniamy wywołań API Softra ani żadnych endpointów
Przed zamknięciem planu: - [ ] `grep -n "carei-insurance-container"` → 0 wyników w `includes/` oraz `assets/js/` - [ ] `grep -n "insuranceContainer"` w JS → 0 wyników - [ ] Modal otwiera się, sekcja „Pakiety ochronne" pokazuje tylko SOFT/PREMIUM - [ ] Opcje dodatkowe: brak pozycji „Zniesienie udziału" - [ ] Podsumowanie i makebooking payload wolne od Softra-insurance - [ ] AC-1, AC-2, AC-3 przeszły human-verify

<success_criteria>

  • Wszystkie tasks zakończone
  • Checkpoint human-verify zatwierdzony ("approved")
  • Brak regresji w Phase 13 (pakiety WP) i w pobieraniu extras Softra </success_criteria>
Po zakończeniu: `.paul/phases/15-remove-softra-insurance/15-01-SUMMARY.md`