From 07e017403539f9fa1414ea64d81fc252b0d43e14 Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Thu, 21 May 2026 14:46:36 +0200 Subject: [PATCH] fix: add wp_body_open to WooCommerce header --- .paul/STATE.md | 88 ++++++---- .paul/changelog/2026-05-21.md | 20 +++ .paul/codebase/impact_map.md | 11 ++ .paul/codebase/quality_risks.md | 8 + .paul/codebase/radar/codebase-memory-plan.txt | 20 +++ .../radar/codebase-memory-post-apply.txt | 21 +++ .paul/codebase/tooling_status.md | 43 +++++ .../PLAN.md | 158 ++++++++++++++++++ .../SUMMARY.md | 71 ++++++++ wp-content/themes/betheme/header-shop.php | 1 + 10 files changed, 411 insertions(+), 30 deletions(-) create mode 100644 .paul/changelog/2026-05-21.md create mode 100644 .paul/codebase/radar/codebase-memory-plan.txt create mode 100644 .paul/codebase/radar/codebase-memory-post-apply.txt create mode 100644 .paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/PLAN.md create mode 100644 .paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md diff --git a/.paul/STATE.md b/.paul/STATE.md index 19b1bfe86..1492d06a7 100644 --- a/.paul/STATE.md +++ b/.paul/STATE.md @@ -4,45 +4,50 @@ Zobacz: `.paul/PROJECT.md` -**Core value:** Klienci mogą przeglądać i kupować miody online. -**Current focus:** Apply naprawy InPost Pay wykonany; czeka manualna weryfikacja frontendu. +**Core value:** Klienci moga przegladac i kupowac miody online. +**Current focus:** Hotfix InPost Pay dla podstron WooCommerce zakonczony w PAUL; pozostaje weryfikacja po wdrozeniu. ## Current Position -Milestone: opcjonalny kontekst legacy, obecnie nieużywany -Phase: plan-first / hotfix kompatybilności motywu -Plan: `20260519-1532-naprawa-inpost-pay-wp-body-open` applied, human verification pending -Status: APPLY automated tasks complete; checkpoint pending -Last activity: 2026-05-19T15:35:26+02:00 - Added `wp_body_open()` to `wp-content/themes/betheme/header.php` +Milestone: opcjonalny kontekst legacy, obecnie nieuzywany +Phase: plan-first / hotfix kompatybilnosci motywu - Complete +Plan: `20260521-1428-naprawa-wp-body-open-woocommerce` complete +Status: Loop complete, ready for next PLAN +Last activity: 2026-05-21T14:43:02+02:00 - Created `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md` + +Progress: +- Milestone: [----------] 0% +- Phase: [##########] 100% ## Loop Position -Aktywna praca powinna przechodzić przez pętlę: +Current loop state: ```text -PLAN -> APPLY -> UNIFY -> VERIFY +PLAN --> APPLY --> UNIFY + x x x [Loop complete - ready for next PLAN] ``` -Current loop state: PLAN complete, APPLY automated tasks complete, VERIFY checkpoint pending before UNIFY. - ## Session Continuity -Last session: 2026-05-19T15:35:26+02:00 -Stopped at: Blocking human verification checkpoint for InPost Pay frontend -Next action: Verify frontend, then run `$paul-unify .paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/PLAN.md` if accepted -Resume file: `.paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/PLAN.md` +Last session: 2026-05-21T14:43:02+02:00 +Stopped at: Loop complete for `20260521-1428-naprawa-wp-body-open-woocommerce` +Next action: Deploy and verify product URL, or start next plan if needed +Resume file: `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md` ## Git State -- Przed inicjalizacją w working tree widoczne były usunięte starsze pliki `.paul/` oraz zmodyfikowany `.vscode/ftp-kr.json`. +- Przed inicjalizacja w working tree widoczne byly usuniete starsze pliki `.paul/` oraz zmodyfikowany `.vscode/ftp-kr.json`. - Nie odtwarzano `.paul/ROADMAP.md` ani retired codebase map files podczas init. +- Ostatni `git status --short` przed utworzeniem planu nie pokazal zmian. ## Active Decisions -- Domyślnym miejscem planów jest `.paul/plans/`. -- Milestones i roadmaps pozostają opcjonalnym kontekstem legacy. -- Quality Radar jest włączony, ale cięższe narzędzia `jscpd` i `ast-grep` są domyślnie wyłączone. -- Bieżący plan dotyka `wp-content/themes/betheme/header.php`, ponieważ brak `wp_body_open()` blokuje skrypt `IPPWidgetOptions` z `inpost-pay`. +- Domyslnym miejscem planow jest `.paul/plans/`. +- Milestones i roadmaps pozostaja opcjonalnym kontekstem legacy. +- Quality Radar jest wlaczony, ale ciezsze narzedzia `jscpd` i `ast-grep` sa domyslnie wylaczone. +- Poprzedni plan dodal `wp_body_open()` do `wp-content/themes/betheme/header.php`. +- Nowe zgloszenie pokazuje, ze WooCommerce laduje osobny `wp-content/themes/betheme/header-shop.php`, gdzie hook nadal nie istnieje. ## Accumulated Context @@ -50,22 +55,45 @@ Resume file: `.paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/PLAN.md` Date: 2026-05-19 Documents: `.paul/codebase/` -Quality Radar: degraded - `codebase-memory-mcp` działa i zwrócił architekturę grafu, ale szerokie zapytania timeoutowały; `jscpd` i `ast-grep` są wyłączone przez config. +Quality Radar: degraded - `codebase-memory-mcp` dzialal czesciowo, ale szerokie zapytania timeoutowaly; `jscpd` i `ast-grep` sa wylaczone przez config. -### Plan Created +### Previous Plan Created Date: 2026-05-19 Plan: `.paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/PLAN.md` -Quality Radar: degraded targeted scan - potwierdzono brak `wp_body_open()` w `wp-content/themes/betheme/header.php` i zależność `inpost-pay` od hooka `wp_body_open`. +Quality Radar: degraded targeted scan - potwierdzono brak `wp_body_open()` w `wp-content/themes/betheme/header.php` i zaleznosc `inpost-pay` od hooka `wp_body_open`. -### Apply Executed +### Previous Apply Executed Date: 2026-05-19 Plan: `.paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/PLAN.md` Changed: `wp-content/themes/betheme/header.php` -Result: dodano `` bezpośrednio po `>`. -Verification: `rg` potwierdził zmianę; `php -l` pominięty, bo `php` nie jest w PATH. -Checkpoint: wymagana manualna weryfikacja frontendu z aktywnym `inpost-pay`. +Result: dodano `` bezposrednio po `>`. +Verification: `rg` potwierdzil zmiane; `php -l` pominiety, bo `php` nie jest w PATH. +Checkpoint result: uzytkownik zglosil, ze strona glowna dziala, ale podstrona produktu nadal ma problem. + +### Follow-up Plan Created + +Date: 2026-05-21 +Plan: `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/PLAN.md` +Quality Radar: degraded targeted scan - MCP timeoutowal, fallback `rg` potwierdzil, ze WooCommerce laduje `header-shop.php`, ktory nie ma `wp_body_open()`. +Planned change: dodac `` do `wp-content/themes/betheme/header-shop.php` bezposrednio po `>`. + +### Follow-up Apply Executed + +Date: 2026-05-21 +Plan: `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/PLAN.md` +Changed: `wp-content/themes/betheme/header-shop.php` +Result: dodano `` bezposrednio po `>`. +Verification: `rg` potwierdzil `wp_body_open()` w `header.php` i `header-shop.php`; `php -l wp-content\themes\betheme\header-shop.php` zwrocil `No syntax errors detected`. +Checkpoint: wymagana manualna weryfikacja wskazanej strony produktu z `?showIzi=true`. + +### Follow-up Unify Executed + +Date: 2026-05-21 +Plan: `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/PLAN.md` +Summary: `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md` +Result: petla PAUL zamknieta. Kodowo AC-1 i AC-3 spelnione; AC-2 spelnione dla sciezki hooka, z follow-upem przegladarkowym po wdrozeniu. ## Active Blockers @@ -73,8 +101,8 @@ Checkpoint: wymagana manualna weryfikacja frontendu z aktywnym `inpost-pay`. ## Pending Actions -- Sprawdź frontend z aktywnym `inpost-pay`: brak `ReferenceError: IPPWidgetOptions is not defined`. -- Jeśli checkpoint przejdzie, uruchom `$paul-unify .paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/PLAN.md`. +- Po wdrozeniu sprawdzic frontend z aktywnym `inpost-pay`: brak `ReferenceError: IPPWidgetOptions is not defined` na stronie produktu `https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/?showIzi=true`. +- Przy kolejnej zmianie motywu rozwazyc child theme, zeby hotfixy Betheme nie byly nadpisywane przy aktualizacji. --- -*STATE.md - aktualizowany po istotnych działaniach PAUL* +*STATE.md - aktualizowany po istotnych dzialaniach PAUL* diff --git a/.paul/changelog/2026-05-21.md b/.paul/changelog/2026-05-21.md new file mode 100644 index 000000000..a8abeeb12 --- /dev/null +++ b/.paul/changelog/2026-05-21.md @@ -0,0 +1,20 @@ +# 2026-05-21 + +## Co zrobiono + +- [20260521-1428-naprawa-wp-body-open-woocommerce] Dodano brakujacy `wp_body_open()` do shopowego naglowka Betheme, zeby InPost Pay mogl dzialac na produktach WooCommerce. +- Potwierdzono, ze zwykle strony uzywaja `header.php`, a podstrony WooCommerce uzywaja `header-shop.php`. +- Zweryfikowano skladnie `wp-content/themes/betheme/header-shop.php` przez `php -l`. +- Zamknieto petle PAUL przez `SUMMARY.md`. + +## Zmienione pliki + +- `wp-content/themes/betheme/header-shop.php` +- `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/PLAN.md` +- `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md` +- `.paul/STATE.md` +- `.paul/codebase/impact_map.md` +- `.paul/codebase/quality_risks.md` +- `.paul/codebase/tooling_status.md` +- `.paul/codebase/radar/codebase-memory-plan.txt` +- `.paul/codebase/radar/codebase-memory-post-apply.txt` diff --git a/.paul/codebase/impact_map.md b/.paul/codebase/impact_map.md index e80ee002a..4e70cd9d7 100644 --- a/.paul/codebase/impact_map.md +++ b/.paul/codebase/impact_map.md @@ -67,3 +67,14 @@ - Kilka pluginów obsługuje InPost, więc zmiana w `ws-inpost-map` może kolidować z gotowymi integracjami. - Tracking i płatności zależą od poprawnych eventów WooCommerce po checkout. - Brak dumpa bazy utrudnia potwierdzenie, które pluginy są aktywne w środowisku. +## Plan Scan: InPost Pay `wp_body_open` Na Podstronach WooCommerce + +**Data analizy:** 2026-05-21 +**Tryb radaru:** `plan` +**Scope:** `wp-content/themes/betheme/header-shop.php`, `wp-content/themes/betheme/woocommerce.php`, `wp-content/themes/betheme/single-template.php`, `wp-content/plugins/inpost-pay/src/hooks/front/FrontWidgetV2.php` + +- Strona glowna uzywa `wp-content/themes/betheme/header.php`, gdzie poprzednio dodano ``. +- Podstrony WooCommerce, w tym produkt, moga uzywac `get_header( 'shop' )`, czyli `wp-content/themes/betheme/header-shop.php`. +- `header-shop.php` ma osobny znacznik `>` i obecnie nie uruchamia `wp_body_open()`. +- `inpost-pay` podpina skrypt inicjalizacyjny pod `wp_body_open`, wiec brak hooka w wariancie shop blokuje `IPPWidgetOptions` na produktach i stronach sklepu. +- Obszar weryfikacji: strona produktu z `?showIzi=true`, strona sklepu/archiwum, koszyk/checkout jezeli uzywaja wariantu shop. diff --git a/.paul/codebase/quality_risks.md b/.paul/codebase/quality_risks.md index c63b11db6..7129754dd 100644 --- a/.paul/codebase/quality_risks.md +++ b/.paul/codebase/quality_risks.md @@ -52,3 +52,11 @@ - Duplikaty i duże pliki w vendorowych pluginach są oczekiwane i nie powinny automatycznie prowadzić do refaktoryzacji. - Motywy `twentytwenty*` mogą być nieaktywne; pozostają w repo jako standardowe motywy WordPress. - Brak pełnej informacji z bazy oznacza, że "zainstalowany" nie znaczy "aktywny". +## Plan Scan: InPost Pay `wp_body_open` Na Podstronach WooCommerce + +**Data analizy:** 2026-05-21 + +- Istnieja dwa frontendowe naglowki Betheme dla normalnych stron i sklepu: `header.php` oraz `header-shop.php`. +- Ryzyko duplikacji poprawki: naprawa tylko w `header.php` nie obejmuje WooCommerce, bo `woocommerce.php` i szablony produktowe moga ladowac `header-shop.php`. +- Ryzyko aktualizacji motywu pozostaje: brak child theme oznacza, ze zmiana w `wp-content/themes/betheme/header-shop.php` moze zostac nadpisana przy aktualizacji Betheme. +- Deferred: nie tworzymy child theme w tym hotfixie, bo celem jest szybkie przywrocenie kompatybilnosci `wp_body_open` dla podstron sklepu. diff --git a/.paul/codebase/radar/codebase-memory-plan.txt b/.paul/codebase/radar/codebase-memory-plan.txt new file mode 100644 index 000000000..6c37b4b9f --- /dev/null +++ b/.paul/codebase/radar/codebase-memory-plan.txt @@ -0,0 +1,20 @@ +Timestamp: 2026-05-21T14:32:06+02:00 +Mode: plan +Scope: InPost Pay / wp_body_open / WooCommerce product pages + +codebase-memory-mcp: +- list_projects did not include this repository. +- index_repository(mode=fast) for C:\visual-studio-code\krolewskie-miody.pl timed out after 120s. +- Status: degraded. + +Fallback targeted scan: +- `rg -n "wp_body_open|>` followed by ``. +- `wp-content/themes/betheme/header-shop.php` has `>` without `wp_body_open()`. +- `wp-content/themes/betheme/woocommerce.php` calls `get_header( 'shop' );`. +- `wp-content/themes/betheme/single-template.php` calls `get_header( 'shop' );` for `single-product` and `shop-archive` templates. +- `wp-content/plugins/inpost-pay/src/hooks/front/FrontWidgetV2.php` registers `add_root_script_after_body_open` on `wp_body_open`. + +Conclusion: +- The homepage fix covered `header.php`, but WooCommerce product/shop pages can render through `header-shop.php`. +- Add `wp_body_open()` directly after the `` tag in `header-shop.php`. diff --git a/.paul/codebase/radar/codebase-memory-post-apply.txt b/.paul/codebase/radar/codebase-memory-post-apply.txt new file mode 100644 index 000000000..d2caa6bb5 --- /dev/null +++ b/.paul/codebase/radar/codebase-memory-post-apply.txt @@ -0,0 +1,21 @@ +Timestamp: 2026-05-21T14:37:52+02:00 +Mode: post-apply +Scope: .paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/PLAN.md + +codebase-memory-mcp: +- Post-apply MCP graph scan not rerun because the plan scan already degraded: repository indexing timed out after 120s. +- Fallback verification used targeted `rg` and `php -l`. + +Changed files: +- `wp-content/themes/betheme/header-shop.php` + +Verification: +- `rg -n "wp_body_open|>` immediately followed by ``. +- `rg -n "` tags and were intentionally not changed. +- `php -l wp-content\themes\betheme\header-shop.php` + Result: No syntax errors detected. + +Checkpoint: +- Manual production/staging verification remains required for `https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/?showIzi=true`. diff --git a/.paul/codebase/tooling_status.md b/.paul/codebase/tooling_status.md index fc1bb804e..beca1eec4 100644 --- a/.paul/codebase/tooling_status.md +++ b/.paul/codebase/tooling_status.md @@ -51,3 +51,46 @@ Użyj `$paul-plan [work]` dla konkretnej zmiany. Przy planowaniu zawęź radar d - Verification: `rg` potwierdził `wp_body_open()` bezpośrednio po `>`. - PHP lint: skipped, `php` nie jest dostępny w PATH. - Raw output: `.paul/codebase/radar/codebase-memory-post-apply-20260519-1532-naprawa-inpost-pay-wp-body-open.txt` +## 2026-05-21T14:32:06+02:00 - Plan Scan + +**Mode:** `plan` +**Scope:** InPost Pay / `wp_body_open` / WooCommerce product pages + +**Tools:** +- `codebase-memory-mcp`: degraded. Repo not present in `list_projects`; `index_repository(mode=fast)` timed out after 120s. +- `jscpd`: disabled by policy (`quality_radar.tools.jscpd: false`). +- `ast-grep`: disabled by policy (`quality_radar.tools.ast_grep: false`). +- Fallback: targeted `rg` scans and direct file reads. + +**Commands / checks attempted:** +- MCP `list_projects` +- MCP `index_repository` for `C:\visual-studio-code\krolewskie-miody.pl` +- `rg -n "wp_body_open| +## Goal +Przywrocic wywolanie `wp_body_open()` na podstronach WooCommerce, w tym na stronie produktu `https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/?showIzi=true`. + +## Purpose +Plugin `inpost-pay` podpina inicjalizacje widgetu pod hook `wp_body_open`. Poprzednia poprawka objela `header.php`, ale produkty i strony sklepu laduja osobny `header-shop.php`, przez co `IPPWidgetOptions` nadal moze nie byc wstrzykiwany. + +## Output +Zmodyfikowany `wp-content/themes/betheme/header-shop.php` z `` bezposrednio po otwarciu znacznika ``. + + + +## Project Docs +@.paul/PROJECT.md +@.paul/STATE.md +@.paul/codebase/architecture.md +@.paul/codebase/db_schema.md +@.paul/codebase/impact_map.md +@.paul/codebase/quality_risks.md +@.paul/codebase/tooling_status.md + +## Source Files +@wp-content/themes/betheme/header.php +@wp-content/themes/betheme/header-shop.php +@wp-content/themes/betheme/woocommerce.php +@wp-content/themes/betheme/single-template.php +@wp-content/plugins/inpost-pay/src/hooks/front/FrontWidgetV2.php + + + +- No clarifications needed. + + + +## Quality Radar + +**Status:** degraded +**Tools:** `codebase-memory-mcp` probowal zaindeksowac repo, ale timeoutowal po 120s; `jscpd` i `ast-grep` sa wylaczone przez `.paul/config.md`; uzyto zawezonych skanow `rg` i bezposredniego odczytu plikow. + +## Affected Areas + +- Motyw Betheme / frontend WooCommerce - `wp-content/themes/betheme/header-shop.php`, `wp-content/themes/betheme/woocommerce.php`, `wp-content/themes/betheme/single-template.php`. +- Integracja InPost Pay - `wp-content/plugins/inpost-pay/src/hooks/front/FrontWidgetV2.php`, ktory rejestruje skrypt pod `wp_body_open`. + +## Duplicate / Hardcoded Risks + +- Dwa osobne naglowki frontendowe (`header.php` i `header-shop.php`) wymagaja tej samej kompatybilnosci z hookiem WordPress. Obsluga: Task 1 doda hook do wariantu shop, a Task 2 zweryfikuje wszystkie frontendowe `` w motywie. +- Brak child theme oznacza ryzyko nadpisania zmiany przy aktualizacji Betheme. Deferred: nie tworzymy child theme w tym hotfixie, bo zakres to pilna naprawa widgetu na podstronach. + +## Explicit Deferrals + +- Nie modyfikujemy pluginu `inpost-pay`; jego uzycie `wp_body_open` jest zgodne z mechanizmem WordPress. +- Nie refaktoryzujemy struktury naglowkow Betheme ani nie tworzymy child theme w tym planie. + + + + +## AC-1: Produkt WooCommerce uruchamia `wp_body_open` +```gherkin +Given strona produktu WooCommerce laduje naglowek `header-shop.php` +When WordPress renderuje znacznik `` +Then `wp_body_open()` jest wywolane bezposrednio po `>` +``` + +## AC-2: InPost Pay ma punkt wstrzykniecia na podstronach sklepu +```gherkin +Given plugin `inpost-pay` rejestruje `FrontWidgetV2::add_root_script_after_body_open` na hooku `wp_body_open` +When uzytkownik otwiera produkt z `?showIzi=true` +Then kod `IPPWidgetOptions` moze zostac wstrzykniety tak jak na stronie glownej +``` + +## AC-3: Zakres zmian pozostaje waski +```gherkin +Given hotfix dotyczy brakujacego hooka w motywie +When zmiana jest wykonana +Then nie sa modyfikowane pluginy, WooCommerce core, konfiguracja bazy ani niepowiazane szablony +``` + + + + + + + Task 1: Dodaj `wp_body_open()` do naglowka shop + wp-content/themes/betheme/header-shop.php + + Dodaj `` bezposrednio po linii `>`, zachowujac analogiczny uklad jak w `wp-content/themes/betheme/header.php`. + + `rg -n "wp_body_open| + AC-1, AC-2 + + + + Task 2: Zweryfikuj pozostale frontendowe warianty body + wp-content/themes/betheme/header.php, wp-content/themes/betheme/header-shop.php, wp-content/themes/betheme/template-blank.php, wp-content/themes/betheme/under-construction.php + + Sprawdz wszystkie istotne frontendowe wystapienia ` + `rg -n " + AC-3 + + + + Task 3: Manualna weryfikacja widgetu InPost Pay na produkcie + https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/?showIzi=true + + Po wdrozeniu otworz wskazana strone produktu z `?showIzi=true`, sprawdz konsole przegladarki i potwierdz, ze nie wystepuje blad `IPPWidgetOptions is not defined`, a widget InPost Pay dziala na podstronie. + + Manual browser check on production/staging URL + AC-2 + + + + + +## Do Not Change +- Nie modyfikowac `wp-content/plugins/inpost-pay/`. +- Nie modyfikowac `wp-content/plugins/woocommerce/`. +- Nie zmieniac checkoutu, metod platnosci, metod dostawy ani ustawien bazy. +- Nie cofaj poprzedniej zmiany w `wp-content/themes/betheme/header.php`. + +## Scope Limits +- Zakres obejmuje tylko brakujace `wp_body_open()` w sciezce naglowka WooCommerce. +- Child theme jest rekomendowanym kierunkiem na przyszlosc, ale nie jest czescia tego hotfixu. + + + +- [ ] `rg -n "wp_body_open| + + +- [ ] All AC pass. +- [ ] `header-shop.php` ma `wp_body_open()` bezposrednio po ``. +- [ ] Nie ma bledu `IPPWidgetOptions is not defined` na wskazanej stronie produktu po wdrozeniu. +- [ ] Docs/radar reports updated when relevant. + + + +SUMMARY.md path: `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md` + diff --git a/.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md b/.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md new file mode 100644 index 000000000..893ea78e7 --- /dev/null +++ b/.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md @@ -0,0 +1,71 @@ +--- +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 `` bezposrednio po `>` 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 `>`. | +| 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|`. | +| `rg -n "` 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. diff --git a/wp-content/themes/betheme/header-shop.php b/wp-content/themes/betheme/header-shop.php index bf8bc9364..e7cf6375c 100644 --- a/wp-content/themes/betheme/header-shop.php +++ b/wp-content/themes/betheme/header-shop.php @@ -34,6 +34,7 @@ if( !empty( get_post_meta(get_the_ID(), 'mfn-post-js', true) ) ) echo get_post_m > +