8.4 KiB
8.4 KiB
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 |
|
false | off |
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-containerusunięty z szablonu widgetu - Logika JS klasyfikująca i renderująca
insuranceItemsusunię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
<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 158–161) 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 503–525):
- 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.phpendpoint/protection-packages- Logika Phase 13 w JS:
loadProtectionPackages,renderProtectionPackages,onProtectionCardClick,getSelectedProtectionPayload, sekcja podsumowania z pakietem WP - Kontener
#carei-protection-packages-containeri 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-dividerw CSS mogą zostać (brak użycia == brak efektu) - Nie zmieniamy wywołań API Softra ani żadnych endpointów
<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>