Files

6.5 KiB

plan_id, title, storage, legacy_phase, created, status, type, autonomous, delegation, files_modified, quality_radar
plan_id title storage legacy_phase created status type autonomous delegation files_modified quality_radar
20260521-1428-naprawa-wp-body-open-woocommerce Naprawa wp_body_open na podstronach WooCommerce plan-first null 2026-05-21T14:32:06+02:00 applied execute false auto
wp-content/themes/betheme/header-shop.php
degraded
## 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 <?php wp_body_open(); ?> bezposrednio po otwarciu znacznika <body>.

## 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.

<impact_scan>

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 <body> 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. </impact_scan>

<acceptance_criteria>

AC-1: Produkt WooCommerce uruchamia wp_body_open

Given strona produktu WooCommerce laduje naglowek `header-shop.php`
When WordPress renderuje znacznik `<body>`
Then `wp_body_open()` jest wywolane bezposrednio po `<body <?php body_class(); ?>>`

AC-2: InPost Pay ma punkt wstrzykniecia na podstronach sklepu

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

Given hotfix dotyczy brakujacego hooka w motywie
When zmiana jest wykonana
Then nie sa modyfikowane pluginy, WooCommerce core, konfiguracja bazy ani niepowiazane szablony

</acceptance_criteria>

Task 1: Dodaj `wp_body_open()` do naglowka shop wp-content/themes/betheme/header-shop.php Dodaj `<?php wp_body_open(); ?>` 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|

<success_criteria>

  • All AC pass.
  • header-shop.php ma wp_body_open() bezposrednio po <body>.
  • Nie ma bledu IPPWidgetOptions is not defined na wskazanej stronie produktu po wdrozeniu.
  • Docs/radar reports updated when relevant. </success_criteria>
SUMMARY.md path: `.paul/plans/20260521-1428-naprawa-wp-body-open-woocommerce/SUMMARY.md`