Files

72 lines
4.1 KiB
Markdown

---
plan_id: 20260521-1428-naprawa-wp-body-open-woocommerce
title: Naprawa wp_body_open na podstronach WooCommerce
completed: 2026-05-21T14:43:02+02:00
storage: plan-first
quality_radar: degraded
---
# Summary: Naprawa wp_body_open na podstronach WooCommerce
## Objective
Przywrocic kompatybilnosc `wp_body_open()` dla podstron WooCommerce renderowanych przez shopowy naglowek Betheme, tak aby `inpost-pay` mogl wstrzyknac `IPPWidgetOptions` rowniez na stronach produktu i sklepu.
## What Was Built
| Area | Result |
|------|--------|
| Betheme / WooCommerce header | Dodano `<?php wp_body_open(); ?>` bezposrednio po `<body <?php body_class(); ?>>` w `wp-content/themes/betheme/header-shop.php`. |
| Zakres innych podstron | Potwierdzono, ze standardowe strony uzywaja `header.php`, a WooCommerce uzywa `header-shop.php`; oba glowne frontendowe naglowki maja teraz `wp_body_open()`. |
## Files Modified
- `wp-content/themes/betheme/header-shop.php` - dodany brakujacy hook `wp_body_open()` dla sciezki WooCommerce.
- `.paul/STATE.md` - zamkniecie loopa i zapis stanu po UNIFY.
- `.paul/codebase/impact_map.md` - dopisany impact scan dla InPost Pay i WooCommerce header.
- `.paul/codebase/quality_risks.md` - dopisane ryzyka dotyczace dwoch naglowkow i braku child theme.
- `.paul/codebase/tooling_status.md` - zapis plan scan i post-apply scan.
- `.paul/codebase/radar/codebase-memory-plan.txt` - surowe notatki ze skanu planu.
- `.paul/codebase/radar/codebase-memory-post-apply.txt` - surowe notatki ze skanu po APPLY.
- `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/PLAN.md` - status zmieniony na `applied`.
## Acceptance Criteria Results
| Criterion | Status | Evidence |
|-----------|--------|----------|
| AC-1 | Pass | `wp-content/themes/betheme/header-shop.php` ma `wp_body_open()` bezposrednio po `<body <?php body_class(); ?>>`. |
| AC-2 | Pass for code path; manual runtime check pending after deploy | `inpost-pay` podpina `FrontWidgetV2::add_root_script_after_body_open` do `wp_body_open`, a shopowy naglowek teraz uruchamia hook. Przegladarkowa weryfikacja URL-a produkcyjnego wymaga wdrozenia. |
| AC-3 | Pass | Nie zmieniono pluginu `inpost-pay`, WooCommerce core, checkoutu, platnosci, dostaw ani konfiguracji bazy. |
## Verification Results
| Check | Result | Notes |
|-------|--------|-------|
| `rg -n "wp_body_open|<body" wp-content\themes\betheme\header.php wp-content\themes\betheme\header-shop.php` | Pass | `header.php` i `header-shop.php` maja `wp_body_open()` po `<body>`. |
| `rg -n "<body|wp_body_open" wp-content\themes\betheme -g "*.php"` | Pass | Glowne frontendowe naglowki sa pokryte. Specjalne tryby `template-blank.php`, `under-construction.php` i visual builder pozostaly bez zmian celowo. |
| `php -l wp-content\themes\betheme\header-shop.php` | Pass | `No syntax errors detected in wp-content\themes\betheme\header-shop.php`. |
## Quality Radar Results
**Status:** degraded
- New risks: brak nowych ryzyk runtime poza istniejacym ryzykiem zmian bez child theme.
- Resolved risks: WooCommerce/product pages nie sa juz pominiete przez brak `wp_body_open()` w `header-shop.php`.
- Deferred risks: brak child theme; nie naprawiane w tym hotfixie, bo zakres byl pilna kompatybilnosc InPost Pay.
- Raw outputs: `.paul/codebase/radar/codebase-memory-plan.txt`, `.paul/codebase/radar/codebase-memory-post-apply.txt`.
## Deviations
- `codebase-memory-mcp` nie zakonczyl indeksowania repo w czasie 120s; zastosowano zawężony skan `rg` i bezposredni odczyt plikow.
- Manualna weryfikacja produkcyjnego URL-a nie byla wykonywana lokalnie w tej sesji; pozostaje krokiem po wdrozeniu.
## Key Decisions / Patterns
- `header.php` pokrywa zwykle strony, a `header-shop.php` pokrywa strony WooCommerce; oba musza utrzymywac kompatybilnosc z `wp_body_open()`.
- Specjalne szablony z wlasnym `<body>` nie zostaly zmienione, bo nie obsluguja zglaszanej sciezki produktu.
## Follow-up
- Po wdrozeniu sprawdzic `https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/?showIzi=true` w przegladarce i potwierdzic brak `IPPWidgetOptions is not defined`.
- Przy kolejnej pracy nad motywem rozwazyc child theme, zeby hotfixy Betheme nie byly tracone przy aktualizacji.