This commit is contained in:
2026-05-19 20:05:59 +02:00
parent 82fb5ad653
commit e90c251d0b
28 changed files with 777 additions and 2158 deletions

3
.codebase-memory/.gitattributes vendored Normal file
View File

@@ -0,0 +1,3 @@
# Auto-generated by codebase-memory-mcp
# Prevent merge conflicts on compressed artifact
graph.db.zst merge=ours binary

View File

@@ -0,0 +1,11 @@
{
"schema_version": 1,
"commit": "",
"indexed_at": "2026-05-19T12:35:19Z",
"project": "C-visual-studio-code-projekty-krolewskie-miody.pl",
"nodes": 292163,
"edges": 823931,
"original_size": 495648768,
"compressed_size": 51530981,
"compression_level": 9
}

Binary file not shown.

View File

@@ -1,28 +1,29 @@
# Project: krolewskie-miody.pl
# Projekt: krolewskie-miody.pl
## Opis
## Description
Sklep internetowy oparty o WordPress + WooCommerce.
## Core Value
## Wartość Główna
Klienci mogą przeglądać i kupować miody online.
## Requirements
## Aktualny Status
### Must Have
- [To be defined during planning]
PAUL został zainicjalizowany w trybie plan-first. Aktywne plany pracy powinny trafiać do `.paul/plans/`.
### Should Have
- [To be defined during planning]
## Trwałe Wymagania I Ograniczenia
### Nice to Have
- [To be defined during planning]
- Customizacje należy wykonywać w child theme albo dedykowanym pluginie, nigdy w core WordPress.
- Kod PHP powinien stosować PSR-12.
- Zmiany schematu bazy danych wymagają migracji.
- Dokumentacja techniczna projektu powinna trafiać do `.paul/codebase/`.
- Deploy odbywa się przez FTP/SFTP według konfiguracji projektu.
## Constraints
- [To be identified during planning]
## Kryteria Sukcesu
## Success Criteria
- Klienci mogą przeglądać i kupować miody online
- [To be refined during planning]
- Klienci mogą przeglądać i kupować miody online.
- Przyszłe zmiany są planowane w `.paul/plans/` przed implementacją.
---
*Created: 2026-04-28*
*Utworzono: 2026-05-19*

View File

@@ -1,22 +0,0 @@
# Roadmap: krolewskie-miody.pl
## Overview
Sklep internetowy oparty o WordPress + WooCommerce.
## Current Milestone
**v0.1 Initial Release** (v0.1.0)
Status: Not started
Phases: 0 of TBD complete
## Phases
| Phase | Name | Plans | Status | Completed |
|-------|------|-------|--------|-----------|
| 1 | TBD | TBD | Not started | - |
## Phase Details
Phases will be defined during `/paul:plan`.
---
*Roadmap created: 2026-04-28*

View File

@@ -1,48 +1,80 @@
# Project State
# Stan Projektu
## Project Reference
See: .paul/PROJECT.md (updated 2026-04-28)
Zobacz: `.paul/PROJECT.md`
**Core value:** Klienci mogą przeglądać i kupować miody online.
**Current focus:** Project initialized — ready for planning
**Current focus:** Apply naprawy InPost Pay wykonany; czeka manualna weryfikacja frontendu.
## Current Position
Milestone: v0.1 Initial Release
Phase: Not yet defined
Plan: None yet
Status: Ready to create roadmap and first PLAN
Last activity: 2026-04-28 — Project initialized
Progress:
- Milestone: [░░░░░░░░░░] 0%
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`
## Loop Position
Current loop state:
```
PLAN ──▶ APPLY ──▶ UNIFY
○ ○ ○ [Ready for first PLAN]
Aktywna praca powinna przechodzić przez pętlę:
```text
PLAN -> APPLY -> UNIFY -> VERIFY
```
## Accumulated Context
### Decisions
None yet.
### Deferred Issues
None yet.
### Blockers/Concerns
None yet.
Current loop state: PLAN complete, APPLY automated tasks complete, VERIFY checkpoint pending before UNIFY.
## Session Continuity
Last session: 2026-04-28
Stopped at: Project initialization complete
Next action: Run /paul:plan to define phases and first plan
Resume file: .paul/PROJECT.md
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`
## Git State
- Przed inicjalizacją w working tree widoczne były usunięte starsze pliki `.paul/` oraz zmodyfikowany `.vscode/ftp-kr.json`.
- Nie odtwarzano `.paul/ROADMAP.md` ani retired codebase map files podczas init.
## 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`.
## Accumulated Context
### Codebase Mapped
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.
### 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`.
### 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 `<?php wp_body_open(); ?>` bezpośrednio po `<body <?php body_class(); ?>>`.
Verification: `rg` potwierdził zmianę; `php -l` pominięty, bo `php` nie jest w PATH.
Checkpoint: wymagana manualna weryfikacja frontendu z aktywnym `inpost-pay`.
## Active Blockers
- Brak.
## 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`.
---
*STATE.md — Updated after every significant action*
*STATE.md - aktualizowany po istotnych działaniach PAUL*

View File

@@ -1,142 +1,72 @@
# Architecture — krolewskie-miody.pl
# Architektura
## Repository Structure
**Data analizy:** 2026-05-19
Only `wp-content/` and WordPress root files are tracked in Git.
`wp-includes/` and `wp-admin/` core directories are present but represent standard WordPress core.
## Przegląd Wzorca
```
krolewskie-miody.pl/
├── wp-config.php # DB config + constants
├── .htaccess # Rewrites, max_input_vars=10000
├── index.php # WP entry point
├── wp-blog-header.php # WP bootstrap
├── wp-content/
│ ├── themes/
│ │ ├── betheme/ # Active theme (parent, no child)
│ │ ├── twentytwentyfive/
│ │ ├── twentytwentyfour/
│ │ └── twentytwentythree/
│ └── plugins/ # 76 plugins
├── .paul/ # PAUL project management
├── .serena/ # Serena AI tooling
├── .vscode/ # VS Code + FTP config
└── CLAUDE.md # AI assistant instructions
```
**Ogólnie:** monolityczna aplikacja WordPress/WooCommerce z dużą liczbą pluginów i vendorowym motywem.
## Theme Architecture: BeTheme (betheme/)
**Kluczowe cechy:**
- Request lifecycle kontroluje WordPress core przez `index.php`, `wp-blog-header.php`, `wp-load.php` i `wp-settings.php`.
- Logika sprzedażowa przechodzi przez WooCommerce w `wp-content/plugins/woocommerce/`.
- Customizacja rozpoznana w kodzie to plugin `wp-content/plugins/ws-inpost-map/`.
- Motyw `wp-content/themes/betheme/` dostarcza dużą część warstwy prezentacji i shortcodeów.
```
betheme/
├── functions.php # Theme bootstrap (defines MFN_THEME_VERSION)
├── style.css # Theme header metadata only
├── woocommerce.php # WooCommerce template root
├── header.php / header-shop.php # Header templates
├── footer.php # Footer template (19KB)
├── style.php / style-colors.php # Dynamic PHP-generated CSS
├── functions/ # Core theme PHP logic
│ ├── theme-functions.php # 119KB — main hooks & functions
│ ├── theme-head.php # 79KB — HEAD/frontend logic
│ ├── theme-woocommerce.php # 72KB — WooCommerce customization (1,752 lines)
│ ├── theme-shortcodes.php # 405KB / 13,793 lines — visual builder shortcodes
│ ├── theme-hooks.php # Hook definitions
│ ├── theme-menu.php # Menu handling (350 lines)
│ ├── admin/ # Admin-side classes
│ ├── builder/ # Visual builder (class-mfn-builder*.php)
│ ├── modules/ # Dynamic data module
│ ├── plugins/
│ │ ├── visual-composer.php # 81KB VC integration
│ │ └── elementor/ # Elementor support
│ ├── post-types/ # Custom post type classes
│ └── widgets/ # Theme widgets
├── woocommerce/ # 27 WooCommerce template overrides
│ ├── archive-product.php
│ ├── content-product.php
│ ├── content-single-product.php
│ ├── cart/ (5 files)
│ ├── checkout/form-checkout.php
│ ├── single-product/ (6+ files)
│ ├── loop/ (4 files)
│ ├── myaccount/downloads.php
│ └── notices/ (2 files)
├── muffin-options/
│ └── theme-options.php # 337KB master options panel
├── visual-builder/ # Muffin's visual page builder
├── css/ # Pre-compiled stylesheets
├── js/ # Pre-compiled JavaScript
├── includes/ # Template partials
├── templates/ # Page templates
├── languages/ # Translations
└── wpml/wpml-config.xml # WPML multilingual config
```
## Warstwy
## Class Architecture (BeTheme)
**WordPress Core:**
- Cel: bootstrap aplikacji, ładowanie konfiguracji, pluginów, motywów i hooków.
- Lokalizacje: `index.php`, `wp-load.php`, `wp-settings.php`, `wp-config.php`.
- Uwaga: w repozytorium nie ma pełnego `wp-admin/` ani `wp-includes/`, więc snapshot jest niepełnym drzewem WordPress.
BeTheme uses a class-per-feature pattern with `mfn_` prefix on all functions:
**WooCommerce:**
- Cel: koszyk, checkout, zamówienia, płatności, wysyłki i model danych sklepu.
- Lokalizacje: `wp-content/plugins/woocommerce/`, pluginy `woo-*`, `woocommerce-*`.
- Używane przez: customowy plugin `wp-content/plugins/ws-inpost-map/` oraz liczne integracje płatności/dostaw.
**Admin classes** (`functions/admin/`):
- `class-mfn-api.php`, `class-mfn-dashboard.php`, `class-mfn-helper.php`
- `class-mfn-update.php`, `class-mfn-plugins.php`, `class-mfn-setup.php`
**Motyw:**
- Cel: frontend, szablony, shortcode'y i builder.
- Lokalizacje: `wp-content/themes/betheme/`, `wp-content/themes/twentytwenty*/`.
- Ryzyko: brak widocznego child theme; customizacje w `wp-content/themes/betheme/` utrudnią aktualizacje.
**Builder classes** (`functions/builder/`):
- `class-mfn-builder.php` — main builder
- `class-mfn-builder-fields.php` — 2.4MB field definitions
- `class-mfn-builder-admin.php` — 154KB
- `class-mfn-builder-front.php` — 136KB
- `class-mfn-builder-woo-helper.php` — WooCommerce builder integration
**Custom Plugin: `ws-inpost-map`:**
- Cel: dodać wybór Paczkomatu InPost na checkout i zapisać wybrany punkt do zamówienia.
- Entry point: `wp-content/plugins/ws-inpost-map/ws-inpost-map.php`.
- Manager: `wp-content/plugins/ws-inpost-map/App/WsInpostMap.php`.
- Hooki checkoutu: `wp-content/plugins/ws-inpost-map/App/WsInpostActions.php`.
- Metoda wysyłki: `wp-content/plugins/ws-inpost-map/App/WsInpostShippingMethod.php`.
- Panel ustawień: `wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php`.
- Assety: `wp-content/plugins/ws-inpost-map/App/Assets.php`.
**Post type classes** (`functions/post-types/`):
- `class-mfn-post-type-page.php`, `class-mfn-post-type-product.php`
- `class-mfn-post-type-template.php` — 84KB
- 10+ additional post type classes
## Przepływ Danych
**Elementor widget classes** (`functions/plugins/elementor/`):
- `class-mfn-elementor.php` + 80+ widget classes
**Checkout z Paczkomatem:**
1. WordPress ładuje plugin przez `wp-content/plugins/ws-inpost-map/ws-inpost-map.php`.
2. `WSIM_InpostMapPlugin` uruchamia `WsInpostMapOnCheckout\App\WsInpostMap`.
3. `WsInpostMap` tworzy `WsInpostActions`, `Assets` i `WSInpostSettings`.
4. `WsInpostActions` rejestruje hooki WooCommerce, jeśli istnieje klasa `woocommerce` i opcja `active-button` jest włączona.
5. Frontend checkoutu ładuje mapę i pole `billing__paczkomat_id`.
6. `saveCustomFieldOrderMeta` zapisuje wartość jako order meta `paczkomat_id`.
7. `displayPaczkomatFieldInOrder` pokazuje zapisany Paczkomat w adminie zamówienia.
## WordPress Request Flow
**Metoda dostawy:**
1. `woocommerce_shipping_init` ładuje `App/WsInpostShippingMethod.php`.
2. `woocommerce_shipping_methods` rejestruje `wsim_inpost_shipping_method`.
3. `WSIM_InpostShippingMethod` pobiera ustawienia instancji WooCommerce i dodaje rate przez `calculate_shipping`.
```
HTTP Request
→ index.php (defines WP_USE_THEMES = true)
→ wp-blog-header.php
→ wp-load.php → wp-config.php (DB + constants)
→ wp-settings.php (load plugins + theme)
→ betheme/functions.php (theme init: MFN_THEME_VERSION = 27.6.4)
→ Loads theme-options.php, theme-functions.php, theme-head.php
→ WordPress template hierarchy selects template file
→ WooCommerce hooks modify product/cart/checkout rendering
```
## Entry Points
## WooCommerce Integration Points
- `index.php` - web entry point WordPress.
- `wp-login.php`, `xmlrpc.php`, `wp-cron.php` - standardowe entry pointy WordPress.
- `wp-content/plugins/ws-inpost-map/ws-inpost-map.php` - entry point customowego pluginu.
- `wp-content/themes/betheme/functions.php` - bootstrap motywu.
1. **Theme support declared** in `theme-woocommerce.php`:
- `wc-product-gallery-zoom`, `wc-product-gallery-lightbox`, `wc-product-gallery-slider`
- Custom image sizes for thumbnails and single product
## Cross-Cutting Concerns
2. **Hooks removed** (theme replaces defaults):
- `woocommerce_before_main_content` wrappers, breadcrumb, sidebar, sale flash, product thumbnail
- Hooki WordPress/WooCommerce są głównym mechanizmem integracji.
- Dane sklepu żyją w bazie WordPress/WooCommerce, a customowe dane InPost są w order meta `paczkomat_id`.
- Tłumaczenia przez text domain `ws-inpost-map` i katalog `wp-content/plugins/ws-inpost-map/languages/`.
- Assety frontendowe pluginu InPost są ładowane globalnie przez `wp_enqueue_scripts`, a nie tylko na checkout.
3. **Hooks added** (theme enhancements):
- Quantity buttons, wishlist button, excerpt in loop, cart fragment AJAX
4. **Template overrides** (`betheme/woocommerce/`):
- 27 files override WooCommerce default templates
## Custom Code Locations
| Location | Purpose |
|----------|---------|
| `betheme/functions/theme-woocommerce.php` | WooCommerce hooks & filters |
| `betheme/functions/theme-functions.php` | Theme hooks, helpers, shortcodes |
| `betheme/woocommerce/` | WooCommerce template overrides |
| `code-snippets` plugin | DB-stored PHP snippets (admin-managed) |
| `head-footer-code` plugin | Header/footer injection |
| `wp-headers-and-footers` plugin | Global header/footer scripts |
## Database
- **Engine:** MariaDB at `mariadb114.miody.nazwa.pl`
- **Database:** `miody_miodynew`
- **Table prefix:** `wp_` (default — not hardened)
- **Custom tables:** None confirmed outside standard WordPress/WooCommerce tables
- **Schema doc:** `.paul/codebase/db_schema.md`
---
*Aktualizuj po zmianie aktywnego motywu, checkoutu, płatności, dostaw albo custom pluginów.*

View File

@@ -1,165 +0,0 @@
# Concerns — krolewskie-miody.pl
## CRITICAL (Immediate Action Required)
### C1 — Credentials Exposed in Version Control
- **wp-config.php** contains live database credentials committed to Git
- **.vscode/ftp-kr.json** contains live FTP credentials committed to Git
- **wp-config.php** line 3: `RSSSL_KEY` (Really Simple SSL API key) committed
- **Action:** Rotate all credentials immediately. Add `.gitignore`. Remove from Git history (`git filter-branch` or `git filter-repo`).
### C2 — No .gitignore
- Entire WordPress installation tracked in Git with no exclusions
- Sensitive files: `wp-config.php`, `.vscode/ftp-kr.json`
- Large vendor code: all 76 plugin directories, all theme files
- **Action:** Create `.gitignore` excluding at minimum: `wp-config.php`, `.vscode/ftp-kr.json`, `/wp-content/uploads/`, `/wp-content/plugins/*/` (third-party), WordPress core dirs
### C3 — FTP Instead of SFTP
- `.vscode/ftp-kr.json` uses plain FTP (port 21) — credentials and file contents transmitted unencrypted
- **Action:** Switch to SFTP in deploy config
---
## HIGH (Address Soon)
### H1 — No Child Theme
- All customizations are in the BeTheme parent theme directly
- Any BeTheme update will overwrite custom code in `functions/`, WooCommerce overrides, etc.
- Violates CLAUDE.md rule: *"Customizations only in child theme or dedicated plugin"*
- **Files at risk:** `betheme/functions/theme-woocommerce.php`, `betheme/woocommerce/` (27 templates)
- **Action:** Create a child theme; migrate project-specific hooks and template overrides
### H2 — Duplicate SEO Plugins (2 full suites active)
- Yoast SEO + Yoast SEO Premium
- All in One SEO + AIOSEO Pro (same plugin, free + paid simultaneously)
- Plus: broken-link-checker-seo, buffor-seo, aioseo-index-now
- **Impact:** Conflicting meta tag output, duplicate sitemap generation, DB bloat
- **Action:** Pick one suite (Yoast recommended as it's newer and at v27.4). Deactivate and delete AIOSEO free/pro
### H3 — Duplicate Analytics Plugins (7 implementations)
- `ga-google-analytics`, `google-analytics-for-wordpress`, `google-analytics-premium`, `google-site-kit`, `woo-ecommerce-tracking-for-google-and-facebook`, `pixelyoursite`, and GTM plugin
- **Impact:** GA4 events firing multiple times, inflated conversion data, page speed degradation
- **Action:** Consolidate to Google Site Kit (official) + GTM for custom events. Remove legacy GA plugins
### H4 — Duplicate Cookie Consent Plugins
- `complianz-gdpr` (primary, comprehensive)
- `cookie-notice` (separate plugin)
- `wpconsent-cookies-banner-privacy-suite` (third plugin)
- **Impact:** Multiple consent banners shown, conflicting consent state, GDPR compliance uncertainty
- **Action:** Keep Complianz only; deactivate and remove cookie-notice and wpconsent
### H5 — Duplicate SMTP Plugins
- `easy-wp-smtp` (primary, configured)
- `wp-mail-smtp` (secondary)
- **Impact:** Email delivery conflicts, double configuration
- **Action:** Deactivate and remove wp-mail-smtp
### H6 — Duplicate Coupon Plugins (free + pro simultaneously)
- `flexible-coupons` (free v1.14.4)
- `flexible-coupons-pro` (pro v2.5.3)
- **Impact:** Plugin conflicts — pro version should replace free
- **Action:** Deactivate and delete flexible-coupons free; keep pro only
### H7 — SQL Injection Risk in Builder Queries
- **File:** `wp-content/themes/betheme/functions/builder/` — 82+ `$wpdb->query()` / `$wpdb->get_results()` calls
- Some queries use direct variable interpolation without `$wpdb->prepare()`:
```php
$wpdb->get_results("... and m.meta_value IN ( '{$type}' )");
```
- **Impact:** SQL injection if `$type` is user-controlled
- **Action:** Audit all `$wpdb` calls in builder files; wrap dynamic values in `$wpdb->prepare()`
### H8 — Duplicator Installer Files Present
- `wp-content/plugins/duplicator/installer/` contains active installer scripts
- Known security risk — Duplicator installers have been exploited historically
- `.htaccess` protections are in place but installer framework is accessible
- **Action:** Delete installer directory after backups are complete
### H9 — No Caching Layer
- 76 plugins with zero caching plugin installed
- Shared hosting (Nazwa.pl) without built-in object cache
- **Impact:** Every page request hits database with full plugin stack
- **Action:** Install LiteSpeed Cache (if host supports LiteSpeed) or WP Super Cache
---
## MEDIUM (Plan to Address)
### M1 — Security Constants Missing from wp-config.php
- `DISALLOW_FILE_EDIT` not set — theme/plugin editor accessible in WP admin
- `FORCE_SSL_ADMIN` not set — admin login may occur over HTTP
- `WP_MEMORY_LIMIT` not set — using PHP default
- **Action:** Add to wp-config.php:
```php
define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_ADMIN', true);
define('WP_MEMORY_LIMIT', '256M');
```
### M2 — Default Table Prefix
- Tables use `wp_` prefix — slightly easier for automated attacks to target
- Changing after installation requires DB migration
- **Action:** Note for future migration during next major maintenance
### M3 — xmlrpc.php Present
- `xmlrpc.php` is a common brute-force and DDoS vector
- Not needed if no XML-RPC integrations are active
- **Action:** Block via .htaccess or disable via plugin if not used
### M4 — No Code Quality Tooling
- No `.phpcs.xml`, no ESLint, no PHPStan
- No pre-commit hooks enforcing standards
- **Action:** Add PHPCS with WordPress ruleset; configure in CI
### M5 — Plugin Count (76 plugins)
- Industry best practice: under 20-25 plugins for performance
- 76 plugins = significant memory and execution time overhead
- Audit has identified at least 10-15 redundant plugins (see H1-H6)
- **Action:** After deduplication, target 50-55 active plugins
### M6 — No Automated Tests
- No PHPUnit, no CI/CD pipeline
- Custom WooCommerce hooks and checkout modifications untested
- See `testing.md` for setup recommendations
---
## LOW (Nice to Have)
### L1 — Code Snippets Plugin on Production
- `code-snippets` stores PHP in the database — not version-controlled
- Snippets invisible in Git history; changes untracked
- **Action:** Migrate any production snippets to a custom plugin or child theme functions
### L2 — Multiple Form Plugins
- `contact-form-7` and `wpforms-lite` both installed
- **Action:** Pick one and remove the other
### L3 — Duplicate Popup Plugins
- `optinmonster` and `popup-maker` both installed
- **Action:** Consolidate to one popup solution
---
## Summary Matrix
| ID | Severity | Issue | Effort |
|----|----------|-------|--------|
| C1 | CRITICAL | Credentials in Git | Low (rotate + gitignore) |
| C2 | CRITICAL | No .gitignore | Low |
| C3 | CRITICAL | FTP unencrypted | Low |
| H1 | HIGH | No child theme | High |
| H2 | HIGH | Duplicate SEO plugins | Low |
| H3 | HIGH | Duplicate analytics (7x) | Low |
| H4 | HIGH | Duplicate cookie consent | Low |
| H5 | HIGH | Duplicate SMTP | Low |
| H6 | HIGH | Duplicate coupon plugins | Low |
| H7 | HIGH | SQL injection in builder | Medium |
| H8 | HIGH | Duplicator installer exposed | Low |
| H9 | HIGH | No caching | Low |
| M1 | MEDIUM | Security constants missing | Low |
| M2 | MEDIUM | Default table prefix | High |
| M3 | MEDIUM | xmlrpc.php active | Low |
| M4 | MEDIUM | No code quality tooling | Medium |
| M5 | MEDIUM | 76 plugins | Medium |
| M6 | MEDIUM | No automated tests | High |

View File

@@ -1,94 +1,49 @@
# Conventions — krolewskie-miody.pl
# Konwencje Kodu
## PHP Conventions (CLAUDE.md)
**Data analizy:** 2026-05-19
- **Standard:** PSR-12 formatting
- **Classes:** PascalCase — e.g. `MfnDynamicData`, `class-mfn-builder.php`
- **Methods/Functions:** snake_case — e.g. `mfn_woocommerce_product_reviews_tab_title()`
- **Database variables:** snake_case
- **Theme function prefix:** `mfn_` for all BeTheme functions
- **Max nesting depth:** 3 levels — extract deeper logic to named methods
- **Comments:** Only when explaining *why*, never *what*
- **Customizations:** Child theme or dedicated plugin only — never in WordPress core or parent theme directly
## Reguły Projektowe
## File Naming
Źródło: `CLAUDE.md`.
- Plugin/theme files: kebab-case — `class-mfn-builder.php`
- Class files: prefixed with `class-``class-mfn-dynamic-data.php`
- PHP powinien stosować PSR-12.
- Klasy: PascalCase.
- Metody: camelCase.
- Zmienne DB: snake_case.
- Unikać zagnieżdżeń powyżej 3 poziomów.
- Komentarze mają wyjaśniać "dlaczego", nie "co".
- Customizacje tylko w child theme albo dedykowanym pluginie, nigdy w core WordPress.
## WordPress Hook Usage
## Aktualne Wzorce W Kodzie
Hooks registered in `wp-content/themes/betheme/functions/`:
**WordPress/WooCommerce:**
- Integracja przez `add_action`, `add_filter`, `register_activation_hook`, `register_deactivation_hook`.
- Escaping i sanitizacja przez funkcje WordPress: `esc_html`, `esc_attr`, `sanitize_text_field`, `wp_verify_nonce`.
- Ustawienia przez WordPress Settings API w `wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php`.
**Core hooks used:**
- `after_setup_theme` — theme init
- `init` — WP initialization
- `wp_enqueue_scripts` — script/style loading
- `pre_get_posts` — query modification
- `admin_menu` — admin customization
**Custom plugin `ws-inpost-map`:**
- Namespace: `WsInpostMapOnCheckout\App`.
- Autoloading PSR-4 w `wp-content/plugins/ws-inpost-map/composer.json`.
- Stałe pluginu: `WSIM_INPOST_MAP_PLUGIN_DIR_PATH`, `WSIM_INPOST_MAP_PLUGIN_DIR_URL`.
- Klasa shipping method `WSIM_InpostShippingMethod` nie jest namespacowana, bo WooCommerce ładuje ją jako nazwę klasy metody wysyłki.
**Custom theme hooks (mfn_):**
- `mfn_before_content` / `mfn_after_content`
- `mfn_before_shop_content` / `mfn_after_shop_content`
- `mfn_hook_bottom`
## Odchylenia I Miejsca Do Uważania
## WooCommerce Hook Pattern
- `wp-content/plugins/ws-inpost-map/App/WsInpostActions.php` używa mieszanki wcięć 2 spacje i stylu odbiegającego od PSR-12.
- `wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php` jest duży względem reszty custom pluginu i łączy definicje pól, rendering admina, ustawienia oraz style dynamiczne.
- Brak widocznego child theme w `wp-content/themes/`; nie należy modyfikować `wp-content/themes/betheme/` bez wyraźnego powodu i planu aktualizacji.
- Kod vendorowy w `wp-content/plugins/` ma własne standardy; nie traktować go jako stylu dla nowych customizacji.
See `wp-content/themes/betheme/functions/theme-woocommerce.php`.
## Zalecany Kierunek Dla Nowych Zmian
**Remove defaults, then add custom:**
```php
// Remove WooCommerce defaults
remove_action('woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
remove_action('woocommerce_sidebar', 'woocommerce_get_sidebar', 10);
- Nowe customizacje sklepu dodawać w dedykowanym pluginie albo child theme.
- Dla zmian checkoutu najpierw sprawdzić kolizje z pluginami:
- `wp-content/plugins/flexible-checkout-fields/`
- `wp-content/plugins/woo-checkout-field-editor-pro/`
- `wp-content/plugins/woocommerce-checkout-manager/`
- `wp-content/plugins/ws-inpost-map/`
- Sanitizować dane wejściowe na granicy requestu i escape'ować przy renderowaniu HTML.
- Nie zapisywać sekretów w dokumentacji PAUL.
// Add theme equivalents
add_action('woocommerce_before_quantity_input_field', 'mfn_woocommerce_before_quantity_input_field');
add_action('woocommerce_after_add_to_cart_button', 'mfn_append_wishlist_button');
add_filter('loop_shop_columns', 'mfn_woo_loop_shop_columns', 20);
add_filter('woocommerce_add_to_cart_fragments', 'woocommerce_header_add_to_cart_fragment');
```
## CSS / JS Conventions
- **No build tooling** — no SASS, Webpack, or Gulp
- CSS and JS are pre-compiled and committed directly
- Main files: `betheme/css/be.css`, `betheme/js/scripts.js`
- Both minified and unminified versions maintained
- Custom CSS should go in child theme `style.css` (once child theme is created)
## Configuration Constants (wp-config.php)
Currently defined:
```php
define('RSSSL_KEY', '...'); // Really Simple SSL API key
define('WP_DEBUG', false); // Production mode
```
**Not yet defined (recommended):**
```php
define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_ADMIN', true);
define('WP_MEMORY_LIMIT', '256M');
```
## Database Conventions
- Schema documented in `.paul/codebase/db_schema.md`
- Every schema change requires a new migration — never modify existing ones
- Use `$wpdb->prepare()` for all dynamic queries
- Table prefix: `wp_` (default)
## Version Control
- **Remote:** `https://git.project-pro.pl/Project-Pro/krolewskie-miody.pl.git`
- **Branch:** `main`
- **No `.gitignore`** — currently all files tracked (security risk; see concerns.md)
- Excluded from FTP deploy: `.git`, `.vscode`, `.paul`, `.serena`, `CLAUDE.md`
## Code Quality Tools
None configured. Recommended additions:
- `.phpcs.xml` — PHP CodeSniffer with WordPress/PSR-12 ruleset
- `phpstan.neon` — Static analysis
- `.eslintrc` — JavaScript linting
---
*Aktualizuj po ustaleniu automatycznego formatowania albo po wydzieleniu child theme/custom pluginu.*

View File

@@ -1,82 +1,41 @@
# Database Schema — krolewskie-miody.pl
# Schemat Danych
## Connection
**Data analizy:** 2026-05-19
- **Engine:** MariaDB
- **Host:** `mariadb114.miody.nazwa.pl`
- **Database:** `miody_miodynew`
- **Table prefix:** `wp_` (default WordPress prefix)
- **Charset:** `utf8mb4`
## Główne Źródło Danych
## Standard WordPress Tables
- Aplikacja używa bazy WordPress skonfigurowanej w `wp-config.php`.
- `wp-config.php` zawiera `$table_prefix`; wartości DB credentials nie są dokumentowane.
- Standardowe tabele WordPress i WooCommerce nie są zdefiniowane w repo jako migracje.
| Table | Purpose |
|-------|---------|
| `wp_posts` | All content (pages, products, orders, templates) |
| `wp_postmeta` | Post metadata (product price, order items, etc.) |
| `wp_terms` | Taxonomy terms (categories, tags, product attributes) |
| `wp_term_taxonomy` | Term-taxonomy relationships |
| `wp_term_relationships` | Object-term relationships |
| `wp_options` | Site configuration, plugin settings |
| `wp_users` | Customer and admin accounts |
| `wp_usermeta` | User metadata (shipping address, billing, roles) |
| `wp_comments` | Product reviews, order notes |
| `wp_commentmeta` | Comment metadata |
| `wp_links` | Blogroll (legacy, rarely used) |
## Customowe Dane Projektu
## WooCommerce Tables
**`ws-inpost-map`:**
- Opcje pluginu: `ws_inpost_plugin_options`, używane w `wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php`.
- Order meta: `paczkomat_id`, zapisywane w `wp-content/plugins/ws-inpost-map/App/WsInpostActions.php`.
- Pole checkoutu: `billing__paczkomat_id`, renderowane w `WsInpostActions::registerCustomField`.
- Metoda dostawy: `wsim_inpost_shipping_method`, rejestrowana w `WsInpostActions::addCustomShippingMethod`.
| Table | Purpose |
|-------|---------|
| `wp_woocommerce_sessions` | Cart sessions |
| `wp_woocommerce_api_keys` | REST API authentication |
| `wp_woocommerce_attribute_taxonomies` | Product attribute definitions |
| `wp_woocommerce_downloadable_product_permissions` | Digital product access |
| `wp_woocommerce_order_items` | Line items per order |
| `wp_woocommerce_order_itemmeta` | Metadata for order items |
| `wp_woocommerce_tax_rates` | Tax rate definitions |
| `wp_woocommerce_tax_rate_locations` | Tax rate geographic zones |
| `wp_woocommerce_shipping_zones` | Shipping zone definitions |
| `wp_woocommerce_shipping_zone_locations` | Zone geographic areas |
| `wp_woocommerce_shipping_zone_methods` | Methods per zone |
| `wp_woocommerce_payment_tokens` | Saved payment methods |
| `wp_woocommerce_payment_tokenmeta` | Payment token metadata |
| `wp_woocommerce_log` | WooCommerce action log |
## Tabele Tworzone Przez Pluginy
## Plugin Tables (selected)
Repo zawiera wiele vendorowych pluginów, które mogą tworzyć własne tabele. Przykłady znalezione w kodzie:
| Table | Plugin | Purpose |
|-------|--------|---------|
| `wp_code_snippets` | Code Snippets | Custom PHP snippet storage |
| `wp_complianz_*` | Complianz GDPR | Cookie consent records |
| `wp_wfpk_*` or similar | PixelYourSite | Tracking pixel config |
- `wp-content/plugins/broken-link-checker-seo/app/Main/Updates.php` - tworzy tabele dla Broken Link Checker by AIOSEO.
- `wp-content/plugins/broken-link-checker-seo/app/Main/PreUpdates.php` - pre-update/migracje tabel BLC.
- `wp-content/plugins/wpforms-lite/uninstall.php` - usuwa tabele `wpforms_*` przy uninstall.
- WooCommerce i Action Scheduler zarządzają własnymi tabelami wewnątrz `wp-content/plugins/woocommerce/`.
## Key Relationships
## Migracje
### Products
- `wp_posts` (post_type = 'product' or 'product_variation')
- `wp_postmeta``_price`, `_regular_price`, `_sale_price`, `_sku`, `_stock`
- `wp_term_relationships``wp_terms` (product categories, tags, attributes)
- Brak projektowego katalogu migracji dla custom code.
- Custom plugin `ws-inpost-map` nie tworzy własnych tabel; zapisuje ustawienia w `wp_options` i dane zamówień w meta WooCommerce.
- Vendorowe migracje należy traktować jako własność pluginów i nie modyfikować ich ręcznie.
### Orders
- `wp_posts` (post_type = 'shop_order')
- `wp_postmeta``_billing_*`, `_shipping_*`, `_order_total`, `_payment_method`
- `wp_woocommerce_order_items` + `wp_woocommerce_order_itemmeta`
## Ryzyka
### Customers
- `wp_users` — account
- `wp_usermeta``billing_address_1`, `shipping_city`, etc.
## Migration Rules
Per CLAUDE.md:
1. Schema changes require a new migration file
2. Never modify existing migrations
3. Document all custom schema changes in this file
## Custom Schema Changes
*No custom tables or schema changes recorded yet.*
- Zmiany checkoutu i order meta muszą być zgodne z WooCommerce HPOS, jeśli HPOS jest włączone w środowisku.
- Ustawienia i sekrety mogą żyć w `wp_options`; nie należy zakładać, że repo zawiera pełny stan runtime.
- Bez dumpa bazy nie można potwierdzić aktywnego motywu, aktywnych pluginów, statusu HPOS ani rzeczywistych wartości ustawień.
---
*Update this file whenever schema changes are made.*
*Aktualizuj po każdej zmianie zapisów do bazy, order meta, ustawień pluginów albo migracji.*

View File

@@ -0,0 +1,69 @@
# Impact Map
**Data analizy:** 2026-05-19
**Tryb radaru:** `full`
**Scope:** `entire repository`
## Najważniejsze Obszary Wpływu
**Checkout WooCommerce:**
- `wp-content/plugins/woocommerce/`
- `wp-content/plugins/ws-inpost-map/App/WsInpostActions.php`
- `wp-content/plugins/ws-inpost-map/assets/js/frontend/checkout.js`
- `wp-content/plugins/flexible-checkout-fields/`
- `wp-content/plugins/woo-checkout-field-editor-pro/`
- `wp-content/plugins/woocommerce-checkout-manager/`
**Dostawy i Paczkomaty:**
- `wp-content/plugins/ws-inpost-map/`
- `wp-content/plugins/woocommerce-paczkomaty-inpost/`
- `wp-content/plugins/inpost-for-woocommerce/`
- `wp-content/plugins/inpost-paczkomaty/`
- `wp-content/plugins/inpost-pay/`
**Płatności:**
- `wp-content/plugins/woo-payu-payment-gateway/`
- `wp-content/plugins/woocommerce-gateway-przelewy24/`
- `wp-content/plugins/woocommerce-paypal-payments/`
- `wp-content/plugins/woocommerce-payments/`
- `wp-content/plugins/woocommerce-active-payments/`
**Frontend i motyw:**
- `wp-content/themes/betheme/`
- `wp-content/plugins/ws-inpost-map/assets/css/frontend/style.css`
- `wp-content/plugins/ws-inpost-map/assets/css/frontend/easypack.css`
- `wp-content/plugins/ws-inpost-map/assets/js/frontend/geowidget.js`
**SEO, tracking i feedy:**
- `wp-content/plugins/all-in-one-seo-pack/`
- `wp-content/plugins/all-in-one-seo-pack-pro/`
- `wp-content/plugins/wordpress-seo/`
- `wp-content/plugins/wordpress-seo-premium/`
- `wp-content/plugins/google-listings-and-ads/`
- `wp-content/plugins/duracelltomi-google-tag-manager/`
- `wp-content/plugins/pixelyoursite/`
- `wp-content/plugins/official-facebook-pixel/`
## Powiązane Dane I Konfiguracja
- `wp-config.php` - połączenie z bazą, `WP_DEBUG`.
- `.htaccess` - reguły Apache.
- `.vscode/ftp-kr.json` - deploy FTP/SFTP.
- `wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php` - opcje `ws_inpost_plugin_options`.
- `wp-content/plugins/ws-inpost-map/App/WsInpostActions.php` - order meta `paczkomat_id`.
## Weryfikacja Po Zmianach
- Checkout z produktem fizycznym i metodą dostawy InPost.
- Zapis i wyświetlanie `paczkomat_id` w zamówieniu.
- Koszyk, checkout, strona podziękowania i e-mail zamówienia.
- Płatność testowa dla aktywnej bramki.
- Tracking konwersji po płatności.
- Zgody cookies i skrypty marketingowe po zmianach frontendowych.
## Ukryte Sprzężenia
- Kilka pluginów może modyfikować te same pola checkoutu.
- 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.

View File

@@ -1,117 +1,68 @@
# Integrations — krolewskie-miody.pl
# Integracje Zewnętrzne
## Payment Gateways
**Data analizy:** 2026-05-19
| Integration | Plugin | Version | Notes |
|-------------|--------|---------|-------|
| Przelewy24 | woocommerce-gateway-przelewy24 | 4.1.16 | Polish market primary |
| PayU | woo-payu-payment-gateway | 2.10.1 | Polish market secondary |
| PayPal | woocommerce-paypal-payments | 4.0.3 | International |
| WooCommerce Payments | woocommerce-payments | 10.7.1 | WordPress.com |
| InPost Pay | inpost-pay | 2.0.7 | Linked to InPost shipping |
## Płatności
## Shipping & Logistics
- `wp-content/plugins/woo-payu-payment-gateway/` - PayU Payment Gateway for WooCommerce.
- `wp-content/plugins/woocommerce-gateway-przelewy24/` - WooCommerce Przelewy24.
- `wp-content/plugins/woocommerce-paypal-payments/` - PayPal dla WooCommerce.
- `wp-content/plugins/woocommerce-payments/` - WooPayments.
- `wp-content/plugins/woocommerce-active-payments/` - dodatkowa logika aktywnych płatności.
| Integration | Plugin | Version | Notes |
|-------------|--------|---------|-------|
| InPost Paczkomaty | woocommerce-paczkomaty-inpost | 4.6.30 | Parcel lockers (paczkomaty) |
| InPost for WooCommerce | inpost-for-woocommerce | — | Courier + locker |
| InPost Map | ws-inpost-map | 1.0.0 | Interactive locker map widget |
| PolKurier | woocommerce-polkurier | — | Polish courier network |
| WooCommerce Services | woocommerce-services | 3.6.1 | Shipping labels + tax |
## Dostawy I Logistyka
## Analytics & Tracking
- `wp-content/plugins/ws-inpost-map/` - customowy wybór Paczkomatu na checkout.
- `wp-content/plugins/woocommerce-paczkomaty-inpost/` - InPost dla WooCommerce.
- `wp-content/plugins/inpost-for-woocommerce/` - integracja InPost.
- `wp-content/plugins/inpost-paczkomaty/` - integracja Paczkomatów.
- `wp-content/plugins/inpost-pay/` - InPost Pay.
- `wp-content/plugins/woocommerce-polkurier/` - Polkurier.
- `wp-content/plugins/woocommerce-services/` - WooCommerce Tax/Services.
| Integration | Plugin | Version | Notes |
|-------------|--------|---------|-------|
| Google Tag Manager | duracelltomi-google-tag-manager | 1.22.3 | GTM container injection |
| Google Site Kit | google-site-kit | 1.177.0 | GA4 + GSC + PageSpeed |
| MonsterInsights | google-analytics-for-wordpress | — | GA dashboard in WP admin |
| MonsterInsights Premium | google-analytics-premium | 10.1.3 | Advanced GA features |
| GA4 snippet | ga-google-analytics | 20260421 | Simple GA snippet (legacy) |
| PixelYourSite | pixelyoursite | 11.2.0.4 | Multi-pixel management |
| Meta Pixel | official-facebook-pixel | 5.0.1 | Facebook/Instagram tracking |
| Meta for WooCommerce | facebook-for-woocommerce | 3.6.3 | Product catalog + pixel |
| TikTok for Business | tiktok-for-business | — | TikTok pixel + catalog |
| WC Google & Facebook tracking | woo-ecommerce-tracking-for-google-and-facebook | — | Enhanced e-commerce events |
## SEO, Feed I Widoczność
**Warning:** Significant tracking duplication — 4+ Google Analytics implementations. Review needed.
- `wp-content/plugins/all-in-one-seo-pack/` i `wp-content/plugins/all-in-one-seo-pack-pro/`.
- `wp-content/plugins/aioseo-index-now/`.
- `wp-content/plugins/broken-link-checker-seo/`.
- `wp-content/plugins/wordpress-seo/` i `wp-content/plugins/wordpress-seo-premium/`.
- `wp-content/plugins/google-listings-and-ads/`.
- `wp-content/plugins/webappick-product-feed-for-woocommerce/`.
- `wp-content/plugins/wp-product-feed-manager/`.
- `wp-content/plugins/woocommerce-ceneo-official/`.
## SEO
## Analytics, Tracking I Reklama
| Integration | Plugin | Version | Notes |
|-------------|--------|---------|-------|
| Yoast SEO | wordpress-seo | 27.4 | Primary SEO |
| Yoast SEO Premium | wordpress-seo-premium | — | Premium features |
| AIOSEO | all-in-one-seo-pack | 4.9.6.2 | Duplicate — should remove |
| AIOSEO Pro | all-in-one-seo-pack-pro | 4.9.6.2 | Duplicate — should remove |
| AIOSEO IndexNow | aioseo-index-now | 1.0.13 | Instant indexing |
| Broken Link Checker | broken-link-checker-seo | 1.2.10 | SEO link audit |
| Google Listings & Ads | google-listings-and-ads | 3.6.1 | Google Shopping / Merchant |
| Buffor SEO | buffor-seo | — | Social media scheduling |
- `wp-content/plugins/duracelltomi-google-tag-manager/` - GTM4WP.
- `wp-content/plugins/google-site-kit/`.
- `wp-content/plugins/ga-google-analytics/`.
- `wp-content/plugins/official-facebook-pixel/`.
- `wp-content/plugins/facebook-for-woocommerce/`.
- `wp-content/plugins/pixelyoursite/`.
- `wp-content/plugins/tiktok-for-business/`.
- `wp-content/plugins/woo-ecommerce-tracking-for-google-and-facebook/`.
**Warning:** Both Yoast and AIOSEO active simultaneously — meta tag conflicts likely.
## Formularze, Zgody, Mail
## Email / SMTP
- `wp-content/plugins/contact-form-7/`.
- `wp-content/plugins/wpforms-lite/`.
- `wp-content/plugins/complianz-gdpr/`.
- `wp-content/plugins/complianz-terms-conditions/`.
- `wp-content/plugins/cookie-notice/`.
- `wp-content/plugins/wpconsent-cookies-banner-privacy-suite/`.
- `wp-content/plugins/easy-wp-smtp/`.
- `wp-content/plugins/wp-mail-smtp/`.
| Integration | Plugin | Notes |
|-------------|--------|-------|
| Easy WP SMTP | easy-wp-smtp 2.14.0 | Primary — configured |
| WP Mail SMTP | wp-mail-smtp | Secondary — potential conflict |
## Deploy I Operacje
## Reviews & Ratings
- `.vscode/ftp-kr.json` - konfiguracja FTP/SFTP według `CLAUDE.md`.
- `wp-config.php` - połączenie z bazą i ustawienia WordPress; sekrety nie są dokumentowane.
- `.htaccess` - reguły Apache.
| Integration | Plugin | Version |
|-------------|--------|---------|
| eKomi | ekomi | 3.4.0 |
| Google Reviews | wp-reviews-plugin-for-google | 13.2.9 |
| Facebook Reviews | free-facebook-reviews-and-recommendations-widgets | 13.2.9 |
## Webhooki I API
## Product Feeds (Polish Marketplaces)
- `codebase-memory-mcp` wykrył 78 route nodes w grafie, ale szerokie zapytania o konkretne route/API timeoutowały na dużym vendorowym indeksie.
- W customowym `ws-inpost-map` nie znaleziono własnych REST route; integracja działa przez hooki WooCommerce i formularz checkout.
| Integration | Plugin | Notes |
|-------------|--------|-------|
| Ceneo.pl | woocommerce-ceneo-official | Polish price comparison |
| WebAppick Feed | webappick-product-feed-for-woocommerce | Multi-platform (Google, Facebook, etc.) |
| WP Product Feed Manager | wp-product-feed-manager | Additional feed management |
## Security & Compliance
| Integration | Plugin | Version | Notes |
|-------------|--------|---------|-------|
| Really Simple SSL | really-simple-ssl | 9.5.9 | SSL + 2FA + hardening |
| Complianz GDPR | complianz-gdpr | 7.4.5 | Cookie consent (primary) |
| Complianz T&C | complianz-terms-conditions | — | Legal document generator |
| Cookie Notice | cookie-notice | 3.0.2 | Cookie banner (potential duplicate) |
| WPConsent | wpconsent-cookies-banner-privacy-suite | — | Privacy suite (potential duplicate) |
| Cloudflare Turnstile | simple-cloudflare-turnstile | 1.39.0 | Bot protection / CAPTCHA |
**Warning:** 3 cookie/consent plugins active simultaneously.
## Marketing & Automation
| Integration | Plugin | Version |
|-------------|--------|---------|
| ShopMagic | shopmagic-for-woocommerce | — | WooCommerce email automation |
| Uncanny Automator | uncanny-automator | 7.1.0.1 | No-code automation |
| OptinMonster | optinmonster | 2.16.22 | Lead capture / popups |
| Popup Maker | popup-maker | 1.22.0 | Popup builder |
## Checkout & Cart
| Integration | Plugin | Version |
|-------------|--------|---------|
| Flexible Checkout Fields | flexible-checkout-fields | 4.1.36 | Custom checkout fields |
| WC Checkout Field Editor Pro | woo-checkout-field-editor-pro | 2.1.8 | Checkout customization |
| WC Checkout Manager | woocommerce-checkout-manager | 7.8.9 | Checkout manager |
| Flexible Coupons | flexible-coupons | 1.14.4 | Advanced coupons |
| Flexible Coupons Pro | flexible-coupons-pro | 2.5.3 | Pro coupons (conflicts with free) |
| WC Auto-Added Coupons | woocommerce-auto-added-coupons | 3.4.2 | Auto-apply coupons |
| WC Active Payments | woocommerce-active-payments | 3.9.18 | Payment method manager |
## Hosting
- **Provider:** Nazwa.pl (Polish hosting)
- **FTP host:** `ftp.miody.nazwa.pl`
- **Database host:** `mariadb114.miody.nazwa.pl`
- **Git remote:** `https://git.project-pro.pl/Project-Pro/krolewskie-miody.pl.git`
---
*Aktualizuj przy dodaniu płatności, trackingów, dostaw, formularzy albo zmianie deployu.*

View File

@@ -0,0 +1,54 @@
# Quality Risks
**Data analizy:** 2026-05-19
## Status Radaru
- `codebase-memory-mcp`: częściowo ok. Indeks został utworzony, a architektura grafu zwróciła podsumowanie, ale szerokie `search_graph` i `index_status` timeoutowały na dużym repozytorium.
- `jscpd`: disabled by policy (`quality_radar.tools.jscpd: false`).
- `ast-grep`: disabled by policy (`quality_radar.tools.ast_grep: false`).
- Fallback: użyto zawężonych skanów `rg` i odczytu konkretnych plików.
## Najważniejsze Ryzyka
**Brak child theme:**
- W `wp-content/themes/` widać `betheme` oraz motywy domyślne WordPress, ale nie widać child theme.
- Ryzyko: zmiany w `wp-content/themes/betheme/` mogą zostać nadpisane przy aktualizacji motywu.
**Custom plugin checkout jest mały, ale krytyczny:**
- `wp-content/plugins/ws-inpost-map/App/WsInpostActions.php` dotyka checkoutu, shipping methods i order meta.
- `wp-content/plugins/ws-inpost-map/App/WSInpostSettings.php` jest duży i łączy kilka odpowiedzialności.
- `wp-content/plugins/ws-inpost-map/App/Assets.php` ładuje assety frontendowe globalnie przez `wp_enqueue_scripts`.
**Wiele pluginów dotyka checkoutu:**
- `wp-content/plugins/flexible-checkout-fields/`
- `wp-content/plugins/woo-checkout-field-editor-pro/`
- `wp-content/plugins/woocommerce-checkout-manager/`
- `wp-content/plugins/ws-inpost-map/`
**Wiele pluginów dotyka tracking/konwersji:**
- `wp-content/plugins/duracelltomi-google-tag-manager/`
- `wp-content/plugins/pixelyoursite/`
- `wp-content/plugins/official-facebook-pixel/`
- `wp-content/plugins/facebook-for-woocommerce/`
- `wp-content/plugins/google-site-kit/`
**Debug w konfiguracji:**
- `wp-config.php` zawiera `WP_DEBUG` ustawione na `true`; trzeba potwierdzić, czy tak ma być na środowisku docelowym.
**Vendor-heavy repo:**
- Repo zawiera dziesiątki tysięcy plików PHP i pełne pluginy vendorowe.
- Szerokie skany generują dużo szumu; planowanie powinno zaczynać od zawężenia do custom pluginu, aktywnego motywu i integracji dotkniętych zmianą.
## Dług Techniczny / Kandydaci Do Porządkowania
- Wydzielić child theme, jeśli projekt wymaga zmian w warstwie motywu.
- Ograniczyć ładowanie assetów `ws-inpost-map` tylko do checkoutu, jeśli nie są potrzebne globalnie.
- Rozważyć rozbicie `WSInpostSettings.php` na definicje pól, rendering i zapis/validację.
- Dodać projektowy test/manual checklist dla checkoutu i InPost.
## Znane False Positives / Akceptowane Ryzyka
- 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".

View File

@@ -0,0 +1,23 @@
Mode: full
Scope: entire repository
Timestamp: 2026-05-19 14:47:48 +02:00
codebase-memory-mcp:
- CLI version: 0.6.1
- Project: C-visual-studio-code-projekty-krolewskie-miody.pl
- Root: C:/visual-studio-code/projekty/krolewskie-miody.pl
- Nodes: 292163
- Edges: 823931
- Node labels: Method 154690, File 32478, Module 32467, Variable 28627, Class 25654, Function 9719, Folder 6494, Interface 1556, Section 380, Route 78
- Edge types: CALLS 369589, DEFINES 253118, DEFINES_METHOD 154690, CONTAINS_FILE 32484, CONTAINS_FOLDER 5881, THROWS 3139, USAGE 1845, IMPORTS 1208
Degraded notes:
- Broad search_graph queries for checkout/payment/API/database timed out after 120s.
- index_status timed out after 120s.
- Repository is vendor-heavy WordPress/WooCommerce tree, so targeted scope is required for future scans.
Fallback findings:
- 73 plugin directories in wp-content/plugins.
- 4 theme directories in wp-content/themes.
- Main custom plugin identified: wp-content/plugins/ws-inpost-map.
- jscpd and ast-grep skipped by policy.

View File

@@ -0,0 +1,14 @@
Mode: plan
Scope: inpost-pay IPPWidgetOptions missing / wp_body_open in Betheme header
Timestamp: 2026-05-19T15:32:42+02:00
Findings:
- wp-content/themes/betheme/header.php contains `<body <?php body_class(); ?>>` and does not call `wp_body_open()`.
- wp-content/plugins/inpost-pay/src/hooks/front/FrontWidgetV2.php registers `add_root_script_after_body_open` on `wp_body_open`.
- FrontWidgetV2::add_root_script_after_body_open outputs `const IPPWidgetOptions = {...}`.
- wp-content/plugins/inpost-pay/src/InpostPay.php enqueues `assets/js/woocommerceizi.js`, which matches the console error source.
Tool status:
- Targeted rg/file reads used.
- codebase-memory-mcp broad searches are avoided for this plan because previous full-map broad queries timed out on the vendor-heavy repository.
- jscpd and ast-grep disabled by policy in .paul/config.md.

View File

@@ -0,0 +1,20 @@
Mode: post-apply
Scope: .paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/PLAN.md
Timestamp: 2026-05-19T15:35:26+02:00
Modified by this apply:
- wp-content/themes/betheme/header.php
Verification:
- rg confirmed:
- line 37: <body <?php body_class(); ?>>
- line 38: <?php wp_body_open(); ?>
- php -l was not run because PHP CLI is not available in PATH.
- Manual frontend checkpoint remains required on an environment where WordPress and inpost-pay are active.
Boundary check:
- No planned edit was made to wp-content/plugins/inpost-pay/.
- Existing git status already contains many modified inpost-pay files unrelated to this apply; they were not reverted or edited by this apply.
Radar status:
- post-apply degraded: targeted file verification completed; no broad codebase-memory search due known timeout risk on vendor-heavy repository.

View File

@@ -1,104 +1,58 @@
# Stack — krolewskie-miody.pl
# Stack Technologiczny
## Core Platform
**Data analizy:** 2026-05-19
| Layer | Technology | Version |
|-------|-----------|---------|
| CMS | WordPress | Check `wp-includes/version.php` |
| E-commerce | WooCommerce | 10.7.0 |
| Theme | BeTheme (Muffin Group) | 27.6.4 |
| Language | PHP | 7.4+ (WooCommerce requirement) |
| Database | MariaDB | mariadb114.miody.nazwa.pl |
| Hosting | Nazwa.pl (shared hosting) | FTP deploy |
## Języki
## Theme
**Główne:**
- PHP - WordPress, WooCommerce, motywy i pluginy w `wp-content/`.
- JavaScript - skrypty frontend/admin w pluginach i motywach, między innymi `wp-content/plugins/ws-inpost-map/assets/js/frontend/checkout.js`.
- CSS/SCSS - style motywów i pluginów, między innymi `wp-content/plugins/ws-inpost-map/assets/css/frontend/style.css`.
- **Parent theme:** `wp-content/themes/betheme/` — BeTheme v27.6.4 by Muffin Group
- **Child theme:** None — customizations live directly in parent theme (violation of CLAUDE.md; see concerns.md)
- **Visual builder:** Muffin's proprietary builder (`wp-content/themes/betheme/visual-builder/`)
- **WooCommerce overrides:** 27 template files in `wp-content/themes/betheme/woocommerce/`
**Dodatkowe:**
- JSON - konfiguracje narzędzi, `composer.json`, dane buildów i manifesty pluginów.
- PO/MO/POT - tłumaczenia WordPress, między innymi `wp-content/plugins/ws-inpost-map/languages/`.
## Payment Gateways
## Runtime
| Plugin | Version | Provider |
|--------|---------|----------|
| woocommerce-gateway-przelewy24 | 4.1.16 | Przelewy24 (P24) — Polish |
| woo-payu-payment-gateway | 2.10.1 | PayU — Polish |
| woocommerce-paypal-payments | 4.0.3 | PayPal |
| woocommerce-payments | 10.7.1 | WordPress.com Payments |
| inpost-pay | 2.0.7 | InPost Pay |
**Środowisko:**
- WordPress + WooCommerce na PHP.
- W repozytorium brakuje `wp-includes/version.php`, więc wersja WordPress nie została potwierdzona z kodu core.
- `wp-config.php` ustawia `WP_DEBUG` na `true`; przed produkcyjnym wdrożeniem trzeba potwierdzić, czy to jest zamierzone.
## Shipping
**Package manager:**
- Brak root `composer.json` i root `package.json`.
- Composer występuje wewnątrz pluginów vendorowych oraz w `wp-content/plugins/ws-inpost-map/composer.json`.
- `ws-inpost-map` używa PSR-4 autoloadingu: `WsInpostMapOnCheckout\App\` -> `App/`.
| Plugin | Version | Provider |
|--------|---------|----------|
| woocommerce-paczkomaty-inpost | 4.6.30 | InPost Paczkomaty (lockers) |
| inpost-for-woocommerce | — | InPost |
| ws-inpost-map | 1.0.0 | InPost map widget |
| woocommerce-polkurier | — | PolKurier courier |
| woocommerce-services | 3.6.1 | WooCommerce Services (tax/shipping) |
## Frameworki I Platforma
## Analytics & Tracking
**Core:**
- WordPress - główna aplikacja, entry point przez `index.php`, `wp-load.php`, `wp-settings.php`.
- WooCommerce - sprzedaż, checkout, koszyk, zamówienia i metody dostawy w `wp-content/plugins/woocommerce/`.
- Betheme - vendorowy motyw w `wp-content/themes/betheme/`.
| Plugin | Version | Purpose |
|--------|---------|---------|
| google-site-kit | 1.177.0 | GA4 + GSC + PageSpeed |
| duracelltomi-google-tag-manager | 1.22.3 | GTM container |
| pixelyoursite | 11.2.0.4 | Multi-pixel manager |
| official-facebook-pixel | 5.0.1 | Meta Pixel |
| facebook-for-woocommerce | 3.6.3 | Meta Catalog + Pixel |
| tiktok-for-business | — | TikTok Pixel |
| woo-ecommerce-tracking-for-google-and-facebook | — | Dual tracking |
| ga-google-analytics | 20260421 | GA snippet injection |
| google-analytics-for-wordpress | — | MonsterInsights |
| google-analytics-premium | 10.1.3 | MonsterInsights Premium |
**Pluginy krytyczne funkcjonalnie:**
- `wp-content/plugins/woocommerce/` - core e-commerce.
- `wp-content/plugins/ws-inpost-map/` - customowa integracja wyboru Paczkomatu na checkout.
- `wp-content/plugins/woo-payu-payment-gateway/` - PayU.
- `wp-content/plugins/woocommerce-gateway-przelewy24/` - Przelewy24.
- `wp-content/plugins/woocommerce-paypal-payments/` i `wp-content/plugins/woocommerce-payments/` - płatności PayPal/WooPayments.
- `wp-content/plugins/inpost-*` oraz `wp-content/plugins/woocommerce-paczkomaty-inpost/` - dostawy/InPost.
## SEO
## Konfiguracja
| Plugin | Version |
|--------|---------|
| wordpress-seo (Yoast) | 27.4 |
| wordpress-seo-premium | — |
| all-in-one-seo-pack | 4.9.6.2 |
| all-in-one-seo-pack-pro | 4.9.6.2 |
| aioseo-index-now | 1.0.13 |
| broken-link-checker-seo | 1.2.10 |
| buffor-seo | — |
| google-listings-and-ads | 3.6.1 |
- `wp-config.php` zawiera konfigurację bazy i WordPress; wartości sekretów nie są dokumentowane.
- `.htaccess` i `.htaccess.bk` zawierają konfigurację serwera Apache.
- `.vscode/ftp-kr.json` wygląda na lokalną konfigurację FTP/SFTP deployu i jest zmodyfikowany w working tree.
- `CLAUDE.md` opisuje reguły projektu: PHP, WordPress + WooCommerce, PSR-12, customizacje tylko w child theme albo dedykowanym pluginie.
## GDPR / Compliance
## Skala Repozytorium
| Plugin | Version |
|--------|---------|
| complianz-gdpr | 7.4.5 |
| complianz-terms-conditions | — |
| cookie-notice | 3.0.2 |
| wpconsent-cookies-banner-privacy-suite | — |
| really-simple-ssl | 9.5.9 |
| simple-cloudflare-turnstile | 1.39.0 |
- Plugin directories: 73 w `wp-content/plugins/`.
- Theme directories: 4 w `wp-content/themes/`.
- Najliczniejsze typy plików: `.php`, `.svg`, `.js`, `.css`, `.png`, `.json`.
- Repozytorium zawiera dużo kodu vendorowego; przy planowaniu zmian trzeba zawężać analizę do custom code i aktywnych integracji.
## Email
| Plugin | Version |
|--------|---------|
| easy-wp-smtp | 2.14.0 (primary) |
| wp-mail-smtp | — (secondary — potential conflict) |
## Frontend Assets
- **CSS:** Pre-compiled plain CSS — `wp-content/themes/betheme/css/be.css` (496KB), responsive.css, woocommerce.css
- **JS:** Pre-compiled plain JS — `wp-content/themes/betheme/js/scripts.js`, woocommerce.js
- **No build tooling:** No SASS, Webpack, or Gulp — assets are version-controlled compiled files
- **Skins:** 12 colour skins in `wp-content/themes/betheme/css/skins/`
## Deployment
- **Protocol:** FTP (plain, unencrypted) to `ftp.miody.nazwa.pl`
- **Remote path:** `/nowa`
- **Config:** `.vscode/ftp-kr.json` (credentials stored in file — security risk)
- **Strategy:** Manual upload — autoUpload disabled
- **Excluded from deploy:** `.git`, `.vscode`, `.paul`, `.serena`, `CLAUDE.md`
## Plugin Count
**76 plugins total** — heavy stack with significant duplication (see concerns.md)
---
*Aktualizuj po zmianie runtime, głównych pluginów, motywu albo sposobu deployu.*

View File

@@ -1,54 +1,60 @@
# Testing — krolewskie-miody.pl
# Testowanie
## Current Status
**Data analizy:** 2026-05-19
**No testing infrastructure is configured.**
## Status
CLAUDE.md acknowledges this: *"Testy — Uzupełnij jak uruchamiać testy"* (incomplete placeholder).
Nie znaleziono root konfiguracji testów dla projektu:
## What's Missing
- brak root `composer.json`;
- brak root `package.json`;
- brak root `phpunit.xml`;
- brak root konfiguracji lint/test dla custom code.
- No `phpunit.xml` or `phpunit.xml.dist`
- No `tests/` directory
- No `.github/workflows/` CI/CD pipelines
- No PHPUnit dependency in any `composer.json`
- No JavaScript test runner (Jest, Mocha, etc.)
- No automated code quality checks on commit
W katalogach vendorowych pluginów istnieją własne `phpunit.xml`, `composer.json`, `package.json`, `webpack.config.js`, `vite.config.ts` i podobne pliki, ale należą do zewnętrznych pluginów, a nie do wspólnego test runnera tego projektu.
## Recommended Setup
## Obszary Do Manualnej Weryfikacji
### PHPUnit (WordPress unit tests)
**Checkout i zamówienie:**
- dodanie produktu do koszyka;
- przejście checkoutu z aktywną metodą dostawy InPost;
- wybór Paczkomatu przez UI z `wp-content/plugins/ws-inpost-map/assets/js/frontend/checkout.js`;
- zapis order meta `paczkomat_id`;
- widoczność Paczkomatu w adminie zamówienia.
**Płatności:**
- PayU przez `wp-content/plugins/woo-payu-payment-gateway/`;
- Przelewy24 przez `wp-content/plugins/woocommerce-gateway-przelewy24/`;
- PayPal/WooPayments przez `wp-content/plugins/woocommerce-paypal-payments/` i `wp-content/plugins/woocommerce-payments/`.
**Dostawy:**
- `wp-content/plugins/ws-inpost-map/`;
- `wp-content/plugins/woocommerce-paczkomaty-inpost/`;
- `wp-content/plugins/inpost-for-woocommerce/`;
- `wp-content/plugins/inpost-paczkomaty/`;
- `wp-content/plugins/inpost-pay/`.
**Frontend i zgody:**
- render strony produktu, koszyka i checkoutu w aktywnym motywie;
- popup/cookie consent po zmianach trackingowych;
- brak konfliktu z GTM, Meta Pixel, PixelYourSite i Google Site Kit.
## Zalecany Minimalny Setup
- Dodać projektowy sposób uruchamiania testów w root, jeśli repo ma być rozwijane dłużej niż jednorazowo.
- Dla `wp-content/plugins/ws-inpost-map/` rozważyć testy jednostkowe PHP dla klas ustawień i zapisu order meta.
- Dla checkoutu używać testu e2e/manualnego scenariusza z prawdziwym koszykiem WooCommerce.
- Każda zmiana w checkout/dostawy/płatności powinna mieć checklistę regresji w planie PAUL.
## Komendy
Brak potwierdzonej komendy testowej dla całego projektu.
1. Install PHPUnit via Composer in a custom plugin or child theme:
```bash
composer require --dev phpunit/phpunit wp-phpunit/wp-phpunit
# Do ustalenia po dodaniu runnera:
# composer test
# npm test
```
2. Create `phpunit.xml`:
```xml
<phpunit bootstrap="tests/bootstrap.php">
<testsuites>
<testsuite name="krolewskie-miody">
<directory>tests/</directory>
</testsuite>
</testsuites>
</phpunit>
```
3. Place test files in `tests/` with `Test` suffix: `tests/class-checkout-test.php`
### Manual Testing Checklist (current practice)
Since no automated tests exist, manual testing covers:
- Product listing and filtering
- Add to cart / cart updates
- Checkout flow (Przelewy24, PayU, PayPal)
- InPost locker selection
- Order confirmation emails (via Easy WP SMTP)
- Coupon application (flexible-coupons-pro)
- GDPR consent banner (Complianz)
## Notes
- WooCommerce 10.x ships with its own test utilities — can be leveraged for integration tests
- Code Snippets plugin stores custom PHP in DB — these snippets are not version-controlled or testable via standard tooling
---
*Aktualizuj po dodaniu root test runnera albo po ustaleniu środowiska staging.*

View File

@@ -1,87 +0,0 @@
# TODO — krolewskie-miody.pl
Lista zadań technicznych do wykonania, zebranych w trakcie audytu malware/trackingu (2026-04-28).
---
## Tracking — czyszczenie nadmiarowych tagów
**Kontekst:** Klient zaakceptował tylko 3 tagi:
- `GTM-PK7GMKK3` (GTM)
- `G-1HMY792XS3` (GA4)
- `AW-1039932301` (Google Ads)
Tag Assistant + Playwright network audit pokazały, że na stronie ładuje się znacznie więcej. Klient deklaruje, że używa pluginu **GTM4WP** (`duracelltomi-google-tag-manager`) — pozostałe źródła trackingu są nadmiarowe.
### 1. Dezaktywacja pluginu Google Site Kit
- **Plugin:** `wp-content/plugins/google-site-kit/`
- **Co dokłada:** GA4 `G-Y85QK36P1W` (zidentyfikowane po parametrze `googlesitekit_post_type=page` w żądaniu do `region1.google-analytics.com`)
- **Akcja:** Dezaktywować w panelu WP Admin → Wtyczki → "Site Kit by Google" → Dezaktywuj.
- Powód, dla którego nie robię tego przez edycję plików: zmiana w pliku zostanie nadpisana przy aktualizacji pluginu, a deaktywacja przez panel jest jednoklikowa, czysta i odwracalna.
- Po deaktywacji plugin można też usunąć (nie jest używany — klient ma GTM4WP jako jedyne narzędzie do tagów).
### 2. Linked destinations w kontenerze GTM-PK7GMKK3
W panelu **tagmanager.google.com** (kontener GTM-PK7GMKK3) wpięte są dodatkowe identyfikatory jako "linked destinations" w głównym tagu Google Tag (gtag). Wszystkie używają tego samego `gdid=dZGIzZG`, co potwierdza, że są skonfigurowane wewnątrz tego samego Google Tag.
**Do usunięcia z konfiguracji GTM:**
| Tag ID | Typ | Źródło network requestu |
|---|---|---|
| `G-GY9X47GDLG` | GA4 | `region1.google-analytics.com/g/collect?tid=G-GY9X47GDLG` |
| `G-HS6220BG6P` | GA4 | `region1.google-analytics.com/g/collect?tid=G-HS6220BG6P` |
| `G-QR9KQ1JQVB` | GA4 | `region1.google-analytics.com/g/collect?tid=G-QR9KQ1JQVB` |
| `GT-PZZ9FWF` | Google Tag | widoczne w Tag Assistant |
| `GT-TNSNL57S` | Google Tag | widoczne w Tag Assistant |
| `157146814` | Floodlight / DV360 | widoczne w Tag Assistant |
**Akcja:**
1. Wejść do `tagmanager.google.com` → kontener `GTM-PK7GMKK3`.
2. Tags → znaleźć główny Google Tag (gtag).
3. W konfiguracji tagu → sekcja "Configure tag for additional Google Analytics destinations" / "Linked destinations" → usunąć powyższe ID.
4. Zostawić tylko `G-1HMY792XS3` i `AW-1039932301`.
5. Zapisać i opublikować nową wersję kontenera.
**Zależność:** wymaga dostępu do konta Google Tag Manager klienta. Sprawdzić, kto ma uprawnienia administratora kontenera GTM-PK7GMKK3.
### 3. Hotjar — zlokalizować źródło i wyłączyć
- **Site ID:** `6700549`
- **Endpointy widoczne w network:**
- `vc.hotjar.io/sessions/6700549`
- `content.hotjar.io/?site_id=6700549`
- **Status:** klient nie zgłaszał Hotjar jako akceptowanego trackera — do wyłączenia.
- **Akcja:** zlokalizować źródło wpięcia (jedno z trzech najprawdopodobniejszych miejsc):
1. **Plugin** — sprawdzić listę aktywnych wtyczek pod kątem nazw typu "Hotjar", "WP Hotjar Integration", "Insert Headers and Footers", "Header Footer Code Manager".
2. **GTM** — sprawdzić w `GTM-PK7GMKK3` czy nie ma Custom HTML tagu z `static.hotjar.com/c/hotjar-6700549.js`.
3. **BeTheme Custom Code** — Theme Options → Custom Code → Header/Footer JS.
- Po znalezieniu — wyłączyć źródło i zweryfikować ponownie przez Tag Assistant + DevTools Network.
---
## Bezpieczeństwo / wcześniejsze ustalenia z tej sesji
### 4. Usunąć kod tworzenia konta admina po pierwszym logowaniu
- **Plik:** `wp-content/themes/betheme/functions.php` (linie ~252-272)
- Po zalogowaniu jako `project-pro` ten blok należy USUNĄĆ — w przeciwnym razie hasło administratora zostaje w pliku motywu i w git.
### 5. Pełny skan pluginów i bazy danych pod kątem malware
Audyt motywu BeTheme wykazał:
- Backdoor z `eval()` raportujący domenę na `webcodes.pl/aktywacje/lista.php` (usunięty z `functions.php`)
- 2 ukryte bloki SEO-spamu z linkami do kasyn (`fontan.kiev.ua`, `melbet`, `parik24`, `mostbet`, `gg-bet`, `verde casino`, `bdmbet` i 12 innych) — usunięte z `footer.php`
- Pirackie BeTheme z dystrybucji `gpltimes.com` (kod był w `functions.php`, częściowo zostawiony tylko w `class-mfn-importer-api.php` aby importer dem działał)
**Do zrobienia:**
- Zainstalować i przeskanować witryną pluginem **Wordfence** lub **MalCare** (głębokie skanowanie + skan bazy).
- Sprawdzić tabelę `wp_users` pod kątem nieautoryzowanych kont admina.
- Sprawdzić Google Search Console → Bezpieczeństwo i ręczne działania (czy domena nie ma ostrzeżenia po okresie spam-injectu).
- **Docelowo:** kupić legalną licencję BeTheme z ThemeForest (~$60) i wgrać czystą kopię motywu, by pozbyć się resztek kodu z gpltimes (m.in. `class-mfn-importer-api.php` linie ze ściąganiem dem z f004.backblazeb2.com/file/gpltimes/).
### 6. Wyłączony moduł UserFeedback
- **Plik:** `wp-content/plugins/userfeedback-lite/includes/frontend/class-userfeedback-frontend.php` (linia 1122)
- Cała klasa `UserFeedback_Frontend` jest zakomentowana — widget ankiet nie ładuje się na froncie.
- **Uwaga:** zmiana zostanie nadpisana przy aktualizacji pluginu UserFeedback Lite. Lepsza alternatywa: dezaktywować plugin w panelu, jeśli ankiety nie są w ogóle używane.

View File

@@ -0,0 +1,53 @@
# Tooling Status
## Ostatni Skan
- Timestamp: 2026-05-19 14:47:48 +02:00
- Scan mode: `full`
- Scope: `entire repository`
- Status: degraded
## Narzędzia
- `codebase-memory-mcp` CLI: `0.6.1`.
- `codebase-memory-mcp` MCP server: dostępny; projekt `C-visual-studio-code-projekty-krolewskie-miody.pl` został dodany do listy projektów.
- `jscpd`: disabled by policy (`quality_radar.tools.jscpd: false`).
- `ast-grep`: disabled by policy (`quality_radar.tools.ast_grep: false`).
- `rg`: użyte jako fallback dla zawężonych wyszukiwań.
## Wyniki MCP
- `get_architecture` zwróciło podsumowanie grafu:
- nodes: 292163
- edges: 823931
- najwięcej node labels: `Method`, `File`, `Module`, `Variable`, `Class`, `Function`
- route nodes: 78
- Szerokie `search_graph` dla checkout/payment/API/database timeoutowały po 120s.
- `index_status` timeoutował po 120s.
## Komendy / Akcje
- `codebase-memory-mcp --version`
- `codebase-memory-mcp/index_repository` w init zakończył się timeoutem, ale indeks pojawił się później w `list_projects`.
- `get_architecture` przez MCP.
- Zawężone odczyty plików `wp-content/plugins/ws-inpost-map/`.
- Zawężone skany `rg` po hookach, DB i TODO/FIXME z wyłączeniem części vendorów.
## Raw Output Paths
- `.paul/codebase/radar/codebase-memory-full.txt`
## Next Action
Użyj `$paul-plan [work]` dla konkretnej zmiany. Przy planowaniu zawęź radar do konkretnych plików, bo szerokie zapytania po całym vendor-heavy repo są wolne.
## Post-Apply: InPost Pay / `wp_body_open`
- Timestamp: 2026-05-19T15:35:26+02:00
- Scan mode: `post-apply`
- Scope: `.paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/PLAN.md`
- Status: degraded
- Modified by apply: `wp-content/themes/betheme/header.php`
- Verification: `rg` potwierdził `wp_body_open()` bezpośrednio po `<body <?php body_class(); ?>>`.
- 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`

View File

@@ -1,7 +1,7 @@
# Project Config
**Project:** krolewskie-miody.pl
**Created:** 2026-04-28
**Created:** 2026-05-19
## Project Settings
@@ -13,12 +13,27 @@ project:
## Integrations
### Quality Radar
```yaml
quality_radar:
enabled: true
auto_install: true
tools:
codebase_memory_mcp: true
jscpd: false
ast_grep: false
reports:
update_on_plan: true
update_on_apply: true
update_on_verify: true
```
### SonarQube
```yaml
sonarqube:
enabled: false
reason: "User declined during init"
```
## Preferences
@@ -27,7 +42,11 @@ sonarqube:
preferences:
auto_commit: false
verbose_output: false
parallel_agents: false
plan_storage: plans
state_autocompress: true
state_autocompress_max_lines: 500
```
---
*Config created: 2026-04-28*
*Config created: 2026-05-19*

View File

@@ -1,83 +0,0 @@
{"ts":"2026-04-28T19:04:31Z","tool":"Bash","cmd":"mkdir -p \"C:/visual studio code/projekty/krolewskie-miody.pl/.paul/phases\" \"C:/visual studio code/projekty/krolewskie-miody.pl/.paul/codebase\" && echo \"OK\"\",\"description\":\"Create .paul direc","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:09:09Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\PROJECT.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:09:15Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\ROADMAP.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:09:24Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:11:41Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\CLAUDE.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:12:26Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\config.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:19:59Z","tool":"Bash","cmd":"sleep 3 && cat /c/Users/jacek/AppData/Local/Temp/claude/C--visual-studio-code-projekty-krolewskie-miody-pl/bbf2a1cb-875c-46cf-913f-0dd72391bc19/tasks/buxq5plfn.output 2>/dev/null\",\"description\":\"R","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:22:45Z","tool":"Edit","file":"C:\\\\Users\\\\jacek\\\\.claude\\\\hooks\\\\paul-session-start.sh","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:22:50Z","tool":"Bash","cmd":"rm -rf .paul/docs && ls .paul/\",\"description\":\"Remove .paul/docs and verify\"},\"tool_response\":{\"stdout\":\"codebase\\nconfig.md\\ngovernance\\nphases\\nPROJECT.md\\nROADMAP.md\\nSTATE.md\",\"s","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:14Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find . -type f -name \"*.md\" | head -20\"},\"tool_response\":{\"stdout\":\"./.paul/config.md\\n./.paul/PROJECT.md\\n./.paul/ROADMAP.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:20Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la | head -40\"},\"tool_response\":{\"stdout\":\"total 1199\\ndrwxr-xr-x 1 jacek 197121 0 kwi 28 21:11 .\\ndrwxr-xr-x 1 jacek ","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:24Z","tool":"Bash","cmd":"for plugin in \"C:/visual studio code/projekty/krolewskie-miody.pl/wp-content/plugins\"/*; do\\n if [ -d \"$plugin\" ]; then\\n mainfile=$(basename \"$plugin\")\\n mainfile=\"$plugin/${mainfile","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:24Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la wp-content/themes/\"},\"tool_response\":{\"stdout\":\"total 33\\ndrwxr-xr-x 1 jacek 197121 0 kwi 28 20:22 .\\ndrwxr-xr-x 1 jace","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:26Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la wp-content/plugins/ | head -30\"},\"tool_response\":{\"stdout\":\"total 345\\ndrwxr-xr-x 1 jacek 197121 0 kwi 28 20:22 .\\ndrwx","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:31Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find wp-content/themes -name \"functions.php\" -o -name \"style.css\" -o -name \"*.json\" | grep -v twentytwenty\"},\"tool_response\":{","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:33Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find . -maxdepth 2 -name \"composer.json\" -o -name \"package.json\" -o -name \".phpcs.xml\" -o -name \".eslintrc*\" -o -name \"phpunit","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:34Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && cat .gitignore 2>/dev/null || echo \"No .gitignore found\"\"},\"tool_response\":{\"stdout\":\"No .gitignore found\",\"stderr\":\"\",\"i","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:39Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la wp-content/plugins/ | grep -v \"^d\" | tail -20\"},\"tool_response\":{\"stdout\":\"total 345\\n-rw-r--r-- 1 jacek 197121 30 kwi ","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:41Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find wp-content/plugins -maxdepth 2 -type f -name \"*.php\" | grep -E \"(^[^/]+\\\\.php|/[^/]+\\\\.php$)\" | head -20\"},\"tool_respons","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:46Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find wp-content -maxdepth 3 -type d -name \"mu-plugins\" -o -name \"custom\" 2>/dev/null\"},\"tool_response\":{\"stdout\":\"\",\"stderr","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:47Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -r \"add_action\\\\|add_filter\" wp-content/themes/betheme/functions.php 2>/dev/null | head -20\"},\"tool_response\":{\"stdout\":\","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:49Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -r \"woocommerce\\\\|wc_\" wp-content/themes/betheme/functions.php 2>/dev/null | head -10\"},\"tool_response\":{\"stdout\":\"if(fu","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:51Z","tool":"Bash","cmd":"for plugin in \"C:/visual studio code/projekty/krolewskie-miody.pl/wp-content/plugins\"/*; do\\n if [ -d \"$plugin\" ]; then\\n pluginname=$(basename \"$plugin\")\\n # Try to find main plugin f","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:54Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && wc -l wp-content/themes/betheme/functions/theme-woocommerce.php\"},\"tool_response\":{\"stdout\":\"1752 wp-content/themes/betheme/funct","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:26:55Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -n \"add_action\\\\|add_filter\" wp-content/themes/betheme/functions/theme-woocommerce.php | head -30\"},\"tool_response\":{\"stdo","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:01Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find wp-content/themes/betheme -maxdepth 2 -name \"*.scss\" -o -name \"*.sass\" -o -name \"Gruntfile.js\" -o -name \"webpack.config.js\","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:02Z","tool":"Bash","cmd":"for dir in \"C:/visual studio code/projekty/krolewskie-miody.pl/wp-content/plugins\"/*; do\\n if [ -d \"$dir\" ]; then\\n name=$(basename \"$dir\")\\n if [ -f \"$dir/$name.php\" ]; then\\n ","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:02Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la wp-content/themes/betheme/css/ | head -20\"},\"tool_response\":{\"stdout\":\"total 1398\\ndrwxr-xr-x 1 jacek 197121 0 kwi 2","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:05Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la wp-content/themes/betheme/js/ | head -20\"},\"tool_response\":{\"stdout\":\"total 1144\\ndrwxr-xr-x 1 jacek 197121 0 kwi 28","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:11Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find . -maxdepth 2 -type f \\\\( -name \".phpcs.xml*\" -o -name \".eslintrc*\" -o -name \".stylelintrc*\" -o -name \"phpstan.neon\" -o ","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:18Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find . -path \"./wp-content/plugins/*/package.json\" -o -path \"./wp-content/themes/*/package.json\" 2>/dev/null | head -5\"},\"tool_re","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:27Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find . -path \"./.github/workflows/*.yml\" -o -path \"./.github/workflows/*.yaml\" 2>/dev/null | head -10\"},\"tool_response\":{\"stdou","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:29Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la .github/ 2>/dev/null || echo \"No .github directory\"\"},\"tool_response\":{\"stdout\":\"No .github directory\",\"stderr\":\"\",","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:31Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find . -maxdepth 3 -type f -name \"phpunit.xml*\" 2>/dev/null\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\"\",\"interrupted\":fal","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:35Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la .paul/\"},\"tool_response\":{\"stdout\":\"total 19\\ndrwxr-xr-x 1 jacek 197121 0 kwi 28 21:22 .\\ndrwxr-xr-x 1 jacek 197121 ","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:36Z","tool":"Bash","cmd":"cd \"C:/visual studio code/projekty/krolewskie-miody.pl\" && git log --oneline -20\"},\"tool_response\":{\"stdout\":\"a95acc355 first commit\",\"stderr\":\"\",\"interrupted\":false,\"isImage\":false,\","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:37Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -r \"define(\" wp-config.php | grep -E \"^define\\\\(\" | head -40\"},\"tool_response\":{\"stdout\":\"define('RSSSL_KEY', 'W1hrgd8","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:39Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep \"^define\\\\|^//\" wp-config.php | head -50\"},\"tool_response\":{\"stdout\":\"//Begin Really Simple Security key\\ndefine('RSSSL","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:44Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && wc -l wp-content/themes/betheme/functions/*.php | tail -15\"},\"tool_response\":{\"stdout\":\" 90 wp-content/themes/betheme/function","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:45Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -E \"^function|^class \" wp-content/themes/betheme/functions/theme-functions.php | head -30\"},\"tool_response\":{\"stdout\":\"fun","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:51Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && git log --oneline -10\"},\"tool_response\":{\"stdout\":\"a95acc355 first commit\",\"stderr\":\"\",\"interrupted\":false,\"isImage\":fal","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:53Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && git config --local -l | head -20\"},\"tool_response\":{\"stdout\":\"core.repositoryformatversion=0\\ncore.filemode=false\\ncore.bare=fa","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:54Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la wp-content/themes/betheme/functions/\"},\"tool_response\":{\"stdout\":\"total 744\\ndrwxr-xr-x 1 jacek 197121 0 kwi 28 20:2","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:27:59Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la .paul/codebase/\"},\"tool_response\":{\"stdout\":\"total 4\\ndrwxr-xr-x 1 jacek 197121 0 kwi 28 21:04 .\\ndrwxr-xr-x 1 jacek 197","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:00Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find wp-content -maxdepth 1 -type d | sort\"},\"tool_response\":{\"stdout\":\"wp-content\\nwp-content/plugins\\nwp-content/themes\",\"s","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:05Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -r \"add_action\\\\|add_filter\" wp-content/themes/betheme/functions/*.php | wc -l\"},\"tool_response\":{\"stdout\":\"176\",\"stde","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:07Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -r \"woocommerce_\" wp-content/themes/betheme/functions/*.php | grep -o \"woocommerce_[a-z_]*\" | sort -u\"},\"tool_response\":{\"","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:08Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -r \"add_action\\\\|add_filter\" wp-content/themes/betheme/functions/theme-woocommerce.php | grep -o \"'[^']*'\" | sort -u | head ","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:13Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && head -100 wp-content/themes/betheme/functions/theme-woocommerce.php | tail -50\"},\"tool_response\":{\"stdout\":\"// WooCommerce 2.7+ s","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:15Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -n \"function mfn\" wp-content/themes/betheme/functions/theme-woocommerce.php | head -20\"},\"tool_response\":{\"stdout\":\"18:fun","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:22Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find . -name \"package.json\" -o -name \"composer.json\" | grep -v node_modules | grep -v vendor\"},\"tool_response\":{\"stdout\":\"./w","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:26Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la .vscode/\"},\"tool_response\":{\"stdout\":\"total 10\\ndrwxr-xr-x 1 jacek 197121 0 kwi 28 20:21 .\\ndrwxr-xr-x 1 jacek 197121 ","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:30Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -E \"^function |^class \" wp-content/themes/betheme/functions/theme-functions.php | head -40\"},\"tool_response\":{\"stdout\":\"fu","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:35Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && find wp-content/themes/betheme/functions -name \"class-*.php\" | xargs ls -lh\"},\"tool_response\":{\"stdout\":\"-rw-r--r-- 1 jacek 197","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:37Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep \"^class \" wp-content/themes/betheme/functions/class-mfn-love.php\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\"\",\"interru","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:38Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep \"^class \" wp-content/themes/betheme/functions/modules/class-mfn-dynamic-data.php\"},\"tool_response\":{\"stdout\":\"class MfnDyn","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:43Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && ls -la | grep gitignore\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\"\",\"interrupted\":false,\"isImage\":false,\"returnCodeInter","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:28:45Z","tool":"Bash","cmd":"cd /c/visual\\\\ studio\\\\ code/projekty/krolewskie-miody.pl && grep -r \"add_action\\\\|add_filter\" wp-content/themes/betheme/functions/theme-functions.php | grep -o \"'[^']*'\" | sort -u | head -5","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:35:15Z","tool":"Bash","cmd":"for theme in \"C:/visual studio code/projekty/krolewskie-miody.pl/wp-content/themes\"/*; do\\n if [ -d \"$theme\" ]; then\\n themename=$(basename \"$theme\")\\n stylefile=\"$theme/style.css\"\\","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:36:47Z","tool":"Bash","cmd":"mkdir -p \"C:/visual studio code/projekty/krolewskie-miody.pl/.paul/codebase\"\",\"description\":\"Create .paul/codebase directory\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\"\",\"interrupted\"","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:37:13Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\codebase\\\\stack.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:37:43Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\codebase\\\\architecture.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:38:06Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\codebase\\\\conventions.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:38:16Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\codebase\\\\testing.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:38:51Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\codebase\\\\integrations.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:39:05Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\codebase\\\\db_schema.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:39:49Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\codebase\\\\concerns.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:40:03Z","tool":"Bash","cmd":"cd \"C:/visual studio code/projekty/krolewskie-miody.pl\" && git add .paul/codebase/ && git status\",\"description\":\"Stage codebase docs for commit\"},\"tool_response\":{\"stdout\":\"warning: in the","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:40:11Z","tool":"Bash","cmd":"cd \"C:/visual studio code/projekty/krolewskie-miody.pl\" && git commit -m \"$(cat <<'EOF'\\ndocs: add .paul/codebase/ codebase map (7 documents)\\n\\nStack, architecture, conventions, testing, integr","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:47:38Z","tool":"Bash","cmd":"wc -l \"C:/visual studio code/projekty/krolewskie-miody.pl/wp-content/themes/betheme/functions.php\"\",\"description\":\"Check line count of betheme functions.php\"},\"tool_response\":{\"stdout\":\"30","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:47:49Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\themes\\\\betheme\\\\functions.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:55:35Z","tool":"Bash","cmd":"git diff wp-content/themes/betheme/functions.php | head -200\",\"description\":\"Show diff of modified functions.php\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\"\",\"interrupted\":false,\"isIma","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:56:48Z","tool":"Edit","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\themes\\\\betheme\\\\functions.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:57:04Z","tool":"Edit","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\themes\\\\betheme\\\\functions.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:58:49Z","tool":"Edit","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\themes\\\\betheme\\\\functions.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T19:58:58Z","tool":"Edit","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\themes\\\\betheme\\\\functions.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T20:00:25Z","tool":"Edit","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\themes\\\\betheme\\\\functions.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T20:04:16Z","tool":"Edit","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\themes\\\\betheme\\\\footer.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T20:05:40Z","tool":"Bash","cmd":"git log --all --oneline -- wp-content/themes/betheme/footer.php 2>&1 | head -20\",\"description\":\"Git history of footer.php\"},\"tool_response\":{\"stdout\":\"a95acc355 first commit\",\"stderr\":\"\","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T20:05:45Z","tool":"Bash","cmd":"git show a95acc355:wp-content/themes/betheme/footer.php 2>&1 | sed -n '280,400p'\",\"description\":\"Show original footer.php tail from first commit\"},\"tool_response\":{\"stdout\":\"<?php endif; ?>\","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T20:09:23Z","tool":"Edit","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\plugins\\\\userfeedback-lite\\\\includes\\\\frontend\\\\class-userfeedback-frontend.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T20:10:23Z","tool":"Edit","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\wp-content\\\\plugins\\\\userfeedback-lite\\\\includes\\\\frontend\\\\class-userfeedback-frontend.php","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}
{"ts":"2026-04-28T20:21:21Z","tool":"Write","file":"c:\\\\visual studio code\\\\projekty\\\\krolewskie-miody.pl\\\\.paul\\\\codebase\\\\todo.md","cwd":"/c/visual studio code/projekty/krolewskie-miody.pl"}

View File

@@ -0,0 +1,164 @@
---
plan_id: 20260519-1532-naprawa-inpost-pay-wp-body-open
title: Naprawa InPost Pay przez przywrócenie wp_body_open
storage: plan-first
legacy_phase: null
created: 2026-05-19T15:32:42+02:00
status: applied_pending_human_verify
type: execute
autonomous: false
delegation: auto
files_modified:
- wp-content/themes/betheme/header.php
quality_radar: degraded
---
<objective>
## Goal
Naprawić błąd `IPPWidgetOptions is not defined` po instalacji `inpost-pay`.
## Purpose
Wtyczka `inpost-pay` rejestruje skrypt inicjalizujący `IPPWidgetOptions` na hooku `wp_body_open`. Motyw `betheme` nie wywołuje tego hooka po otwarciu `<body>`, więc konfiguracja widgetu nie trafia do HTML przed uruchomieniem `woocommerceizi.js`.
## Output
Jedna zmiana w `wp-content/themes/betheme/header.php`: dodanie `<?php wp_body_open(); ?>` bezpośrednio po `<body <?php body_class(); ?>>`.
</objective>
<context>
## Project Docs
@.paul/PROJECT.md
@.paul/STATE.md
@.paul/codebase/architecture.md
@.paul/codebase/impact_map.md
@.paul/codebase/quality_risks.md
## Source Files
@wp-content/themes/betheme/header.php
@wp-content/plugins/inpost-pay/src/hooks/front/FrontWidgetV2.php
@wp-content/plugins/inpost-pay/src/InpostPay.php
</context>
<clarifications>
- Support InPost wskazał brak `wp_body_open()` w `header.php` jako przyczynę niewstrzyknięcia skryptu z `IPPWidgetOptions`.
- W repo nie widać child theme dla `betheme`, więc plan dotyka parent theme. To jest świadome odstępstwo od preferowanej reguły projektu; ryzyko nadpisania przy aktualizacji motywu jest zapisane w impact scan i granicach.
</clarifications>
<impact_scan>
## Quality Radar
**Status:** degraded
**Tools:** `codebase-memory-mcp` częściowo dostępny; szerokie zapytania po repo timeoutują. Użyto zawężonego `rg` i odczytu konkretnych plików.
## Affected Areas
- Motyw frontend: `wp-content/themes/betheme/header.php`.
- InPost Pay widget: `wp-content/plugins/inpost-pay/src/hooks/front/FrontWidgetV2.php`.
- InPost Pay JS: `wp-content/plugins/inpost-pay/src/InpostPay.php` rejestruje `assets/js/woocommerceizi.js`.
## Findings
- `FrontWidgetV2::attach_hook()` podpina `add_root_script_after_body_open` do `wp_body_open`.
- `FrontWidgetV2::add_root_script_after_body_open()` emituje `const IPPWidgetOptions = {...}`.
- `wp-content/themes/betheme/header.php` ma `<body <?php body_class(); ?>>`, ale nie ma `wp_body_open()`.
- Brak child theme w `wp-content/themes/` oznacza ryzyko, że zmiana w `betheme` zostanie nadpisana podczas aktualizacji motywu.
## Duplicate / Hardcoded Risks
- Nie tworzyć fallbacku `IPPWidgetOptions` w custom JS, bo byłby drugim źródłem prawdy obok `inpost-pay`.
- Nie modyfikować `wp-content/plugins/inpost-pay/`, bo problem leży po stronie niewywołanego hooka motywu.
## Explicit Deferrals
- Utworzenie child theme zostaje poza zakresem tej poprawki, bo użytkownik zgłasza pilny błąd produkcyjny i wsparcie InPost wskazało minimalną zmianę.
</impact_scan>
<acceptance_criteria>
## AC-1: Hook WordPress Jest Wywoływany Po Otwarciu Body
```gherkin
Given aktywny motyw renderuje `wp-content/themes/betheme/header.php`
When strona frontendowa otwiera znacznik `<body>`
Then bezpośrednio po nim wywoływane jest `wp_body_open()`
```
## AC-2: InPost Pay Może Wstrzyknąć Konfigurację Widgetu
```gherkin
Given wtyczka `inpost-pay` jest aktywna
When WordPress uruchamia hook `wp_body_open`
Then `FrontWidgetV2::add_root_script_after_body_open()` może wypisać skrypt z `IPPWidgetOptions`
```
## AC-3: Zakres Zmiany Jest Minimalny
```gherkin
Given poprawka dotyczy kompatybilności motywu z hookiem WordPress
When kod zostanie zmieniony
Then nie są modyfikowane pliki `wp-content/plugins/inpost-pay/` ani inne integracje checkoutu
```
</acceptance_criteria>
<tasks>
<task type="auto">
<name>Task 1: Dodać wp_body_open do header.php</name>
<files>wp-content/themes/betheme/header.php</files>
<action>
Wstawić `<?php wp_body_open(); ?>` bezpośrednio po linii `<body <?php body_class(); ?>>`.
Zachować istniejący układ HTML/PHP i nie zmieniać pozostałych hooków Betheme.
</action>
<verify>`rg -n "wp_body_open|<body|body_class" wp-content/themes/betheme/header.php`</verify>
<done>Spełnia AC-1 i AC-3.</done>
</task>
<task type="auto">
<name>Task 2: Sprawdzić składnię PHP zmienionego pliku</name>
<files>wp-content/themes/betheme/header.php</files>
<action>
Uruchomić lint PHP dla zmienionego pliku, jeśli `php` jest dostępny w PATH.
</action>
<verify>`php -l wp-content/themes/betheme/header.php` albo udokumentowany brak PHP CLI</verify>
<done>Spełnia AC-1 i AC-3.</done>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<name>Task 3: Zweryfikować frontend z aktywnym InPost Pay</name>
<files>wp-content/themes/betheme/header.php, wp-content/plugins/inpost-pay/src/hooks/front/FrontWidgetV2.php</files>
<action>
Na środowisku z aktywną wtyczką `inpost-pay` odświeżyć stronę koszyka/checkoutu i sprawdzić, czy w HTML po `<body>` pojawia się skrypt z `IPPWidgetOptions`.
</action>
<verify>DevTools Console: brak `ReferenceError: IPPWidgetOptions is not defined`; Source/Elements: obecny skrypt `IPPWidgetOptions`.</verify>
<done>Spełnia AC-2.</done>
</task>
</tasks>
<boundaries>
## Do Not Change
- Nie modyfikować `wp-content/plugins/inpost-pay/`.
- Nie modyfikować `wp-content/plugins/ws-inpost-map/`.
- Nie zmieniać logiki checkoutu, płatności, dostaw ani assetów Betheme.
- Nie dodawać własnego globalnego `IPPWidgetOptions` poza mechanizmem `inpost-pay`.
## Scope Limits
- Plan naprawia brak standardowego hooka WordPress w aktywnym headerze.
- Plan nie rozwiązuje ogólnego problemu braku child theme.
- Plan nie potwierdza konfiguracji merchant InPost Pay ani poprawności danych API.
</boundaries>
<verification>
- [ ] `rg -n "wp_body_open|<body|body_class" wp-content/themes/betheme/header.php`
- [ ] `php -l wp-content/themes/betheme/header.php` albo zanotowany brak PHP CLI
- [ ] Frontend manualnie: brak błędu `IPPWidgetOptions is not defined`
- [ ] Quality Radar relevant risks handled or deferred.
</verification>
<success_criteria>
- [ ] `wp_body_open()` jest w `wp-content/themes/betheme/header.php` bezpośrednio po `<body <?php body_class(); ?>>`.
- [ ] Nie zmieniono plików pluginu `inpost-pay`.
- [ ] PHP lint przechodzi albo brak PHP CLI jest udokumentowany.
- [ ] Na środowisku z aktywnym `inpost-pay` widget nie zgłasza `IPPWidgetOptions is not defined`.
</success_criteria>
<output>
SUMMARY.md path: `.paul/plans/20260519-1532-naprawa-inpost-pay-wp-body-open/SUMMARY.md`
</output>

View File

@@ -1,133 +0,0 @@
[ 1411ms] [LOG] PixelYourSite Free version 11.2.0.4 @ https://krolewskie-miody.pl/:69
[ 1487ms] [LOG] JQMIGRATE: Migrate is installed, version 3.4.1 @ https://krolewskie-miody.pl/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1:1
[ 2088ms] ReferenceError: IPPWidgetOptions is not defined
at HTMLDocument.<anonymous> (https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:94014)
[ 3075ms] [WARNING] [Meta Pixel] - Duplicate Pixel ID: 307827130850744. @ https://connect.facebook.net/en_US/fbevents.js:181
[ 3173ms] [ERROR] This document requires 'TrustedHTML' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3173ms] [ERROR] This document requires 'TrustedHTML' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3174ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3174ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3175ms] [ERROR] This document requires 'TrustedScriptURL' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3175ms] [ERROR] This document requires 'TrustedScriptURL' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3288ms] [ERROR] Permissions policy violation: xr-spatial-tracking is not allowed in this document. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3288ms] [ERROR] Permissions policy violation: xr-spatial-tracking is not allowed in this document. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3954ms] [ERROR] Permissions policy violation: xr-spatial-tracking is not allowed in this document. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 3954ms] [ERROR] Permissions policy violation: xr-spatial-tracking is not allowed in this document. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 4425ms] [ERROR] Executing inline script violates the following Content Security Policy directive 'script-src 'nonce-d08aXxCQ4MFRuT7fnyvZx1' 'unsafe-eval''. Either the 'unsafe-inline' keyword, a hash ('sha256-eJGI0Ik4oYe/PKLDOt4wcN76wYs8h+Ew05pMzdY6xG8='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked. @ about:srcdoc:0
[ 4425ms] [ERROR] Executing inline script violates the following Content Security Policy directive 'script-src 'nonce-d08aXxCQ4MFRuT7fnyvZx1' 'unsafe-eval''. Either the 'unsafe-inline' keyword, a hash ('sha256-eJGI0Ik4oYe/PKLDOt4wcN76wYs8h+Ew05pMzdY6xG8='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked. @ about:srcdoc:0
[ 4426ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 4426ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 4436ms] ReferenceError: IPPWidgetOptions is not defined
at https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:93624
at f (https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:87312)
at Generator.<anonymous> (https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:87085)
at Generator.next (https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:87671)
at kt (https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:91963)
at a (https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:92166)
at https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:92227
at new Promise (<anonymous>)
at https://krolewskie-miody.pl/wp-content/plugins/inpost-pay/assets/js/woocommerceizi.js?ver=6272:1:92107
[ 5009ms] [WARNING] Failed to parse audio contentType: audio/mp4; codecs=ac-3 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 5010ms] [WARNING] Failed to parse audio contentType: audio/mp4; codecs=ec-3 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 5014ms] [WARNING] Invalid (ambiguous) video codec string: video/webm; codecs=vp9 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 5015ms] [WARNING] Failed to parse video contentType: video/ogg; codecs=theora @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6197ms] [LOG] The next request for the Private Access Token challenge may return a 401 and show a warning in console. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6452ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/pat/9f38c037cc00467c/1777407451367/1802bfb1244e5d770d6f4fd050e28008a9cbdd196bc8857fdb77340f30be601c/_9k6uXrAwYXn2CW:0
[ 6563ms] [WARNING] Form submission canceled because the form is not connected @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6606ms] [LOG] /.*.*=.*/ @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6606ms] [LOG] /.*.*=.*/ @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6607ms] [LOG] function () { [native code] } @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6607ms] [LOG] function () { [native code] } @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6607ms] [LOG] JSHandle@node @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6608ms] [LOG] JSHandle@node @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6608ms] [COUNT] : 1 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6608ms] [COUNT] : 1 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6610ms] [DIR] Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6611ms] [DIR] Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6611ms] [DIRXML] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6611ms] [DIRXML] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6612ms] [ERROR] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6612ms] [ERROR] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6613ms] [INFO] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6613ms] [INFO] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6614ms] [LOG] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6614ms] [LOG] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6614ms] [TABLE] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6615ms] [TABLE] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6617ms] [WARNING] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6617ms] [WARNING] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6659ms] [ERROR] Permissions policy violation: xr-spatial-tracking is not allowed in this document. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 6659ms] [ERROR] Permissions policy violation: xr-spatial-tracking is not allowed in this document. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7121ms] [WARNING] Form submission canceled because the form is not connected @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7142ms] [LOG] /.*.*=.*/ @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7142ms] [LOG] /.*.*=.*/ @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7142ms] [LOG] function () { [native code] } @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7142ms] [LOG] function () { [native code] } @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7143ms] [LOG] JSHandle@node @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7143ms] [LOG] JSHandle@node @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7143ms] [COUNT] : 1 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7144ms] [COUNT] : 1 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7145ms] [DIR] Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7145ms] [DIR] Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7145ms] [DIRXML] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7146ms] [DIRXML] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7146ms] [ERROR] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7146ms] [ERROR] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7147ms] [INFO] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7147ms] [INFO] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7147ms] [LOG] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7148ms] [LOG] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7148ms] [TABLE] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7148ms] [TABLE] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7156ms] [WARNING] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7156ms] [WARNING] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7213ms] [LOG] The next request for the Private Access Token challenge may return a 401 and show a warning in console. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 7332ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/pat/9f38c037cc05467c/1777407451311/9f331a5bef796d6243e5ce80818693a343c09f7aff6a0376810fc5f90caefde5/eDDB7yRi2IE0eNl:0
[ 8288ms] [LOG] The next request for the Private Access Token challenge may return a 401 and show a warning in console. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8351ms] [ERROR] Failed to load resource: the server responded with a status of 401 () @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/pat/9f38c037cbfd467c/1777407451279/db2e88210579a2d854d7e1e8b7835dbfa753670524477364803da85534f4f554/oZFjSYhkq6YvEWY:0
[ 8428ms] [WARNING] Form submission canceled because the form is not connected @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8469ms] [ERROR] This document requires 'TrustedHTML' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8469ms] [ERROR] This document requires 'TrustedHTML' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8470ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8470ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8470ms] [ERROR] This document requires 'TrustedScriptURL' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8470ms] [ERROR] This document requires 'TrustedScriptURL' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8615ms] [ERROR] This document requires 'TrustedHTML' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8615ms] [ERROR] This document requires 'TrustedHTML' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8616ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8616ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8616ms] [ERROR] This document requires 'TrustedScriptURL' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 8617ms] [ERROR] This document requires 'TrustedScriptURL' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 9502ms] [ERROR] Executing inline script violates the following Content Security Policy directive 'script-src 'nonce-MD3SkwN834d0vWk3dOxF1l' 'unsafe-eval''. Either the 'unsafe-inline' keyword, a hash ('sha256-eJGI0Ik4oYe/PKLDOt4wcN76wYs8h+Ew05pMzdY6xG8='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked. @ about:srcdoc:0
[ 9502ms] [ERROR] Executing inline script violates the following Content Security Policy directive 'script-src 'nonce-MD3SkwN834d0vWk3dOxF1l' 'unsafe-eval''. Either the 'unsafe-inline' keyword, a hash ('sha256-eJGI0Ik4oYe/PKLDOt4wcN76wYs8h+Ew05pMzdY6xG8='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked. @ about:srcdoc:0
[ 9503ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 9503ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10494ms] [ERROR] Executing inline script violates the following Content Security Policy directive 'script-src 'nonce-QiernSwfTZVig05mz7oQnL' 'unsafe-eval''. Either the 'unsafe-inline' keyword, a hash ('sha256-eJGI0Ik4oYe/PKLDOt4wcN76wYs8h+Ew05pMzdY6xG8='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked. @ about:srcdoc:0
[ 10494ms] [ERROR] Executing inline script violates the following Content Security Policy directive 'script-src 'nonce-QiernSwfTZVig05mz7oQnL' 'unsafe-eval''. Either the 'unsafe-inline' keyword, a hash ('sha256-eJGI0Ik4oYe/PKLDOt4wcN76wYs8h+Ew05pMzdY6xG8='), or a nonce ('nonce-...') is required to enable inline execution. The action has been blocked. @ about:srcdoc:0
[ 10495ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10495ms] [ERROR] This document requires 'TrustedScript' assignment. The action has been blocked. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10598ms] [LOG] /.*.*=.*/ @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10599ms] [LOG] /.*.*=.*/ @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10600ms] [LOG] function () { [native code] } @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10600ms] [LOG] function () { [native code] } @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10600ms] [LOG] JSHandle@node @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10601ms] [LOG] JSHandle@node @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10601ms] [COUNT] : 1 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10601ms] [COUNT] : 1 @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10602ms] [DIR] Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10603ms] [DIR] Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10603ms] [DIRXML] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10603ms] [DIRXML] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10604ms] [ERROR] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10604ms] [ERROR] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10605ms] [INFO] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10605ms] [INFO] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10605ms] [LOG] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10606ms] [LOG] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10606ms] [TABLE] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10606ms] [TABLE] %c%d font-size:0;color:transparent Error @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10607ms] [WARNING] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 10608ms] [WARNING] %c%d font-size:0;color:transparent NaN @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 13535ms] [WARNING] The resource https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/cmg/1 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/bgkeq/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 16110ms] [WARNING] The resource https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/cmg/1 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/o4r5g/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0
[ 16157ms] [WARNING] The resource https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/cmg/1 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally. @ https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/f/ov2/av0/rch/f71bv/0x4AAAAAAA4r06g2dN1jf0fe/light/fbE/new/normal?lang=auto:0

View File

@@ -1,556 +0,0 @@
- generic [active] [ref=e1]:
- generic [ref=e2]:
- banner [ref=e3]:
- generic [ref=e4]:
- text:                 
- generic [ref=e9]:
- text:         
- link "logo-1" [ref=e13] [cursor=pointer]:
- /url: https://krolewskie-miody.pl
- img "logo-1" [ref=e14]
- list [ref=e17]:
- listitem [ref=e18]:
- link "Królewskie Miody Naturalne i zdrowe 🍯🐝🎁" [ref=e19] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/
- generic [ref=e22]: Królewskie Miody Naturalne i zdrowe 🍯🐝🎁
- text:
- listitem [ref=e23]:
- link "Sklep Online Miód, Pyłek, Mleczko " [ref=e24] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/sklep/
- generic [ref=e27]: Sklep Online Miód, Pyłek, Mleczko
- generic [ref=e29]:
- text:        
- listitem [ref=e30]:
- link "Blog wiedza o miodzie i pszczołach" [ref=e31] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/blog/
- generic [ref=e34]: Blog wiedza o miodzie i pszczołach
- text:
- listitem [ref=e35]:
- link "Nasza Pasieka i Historia Pszczelarza" [ref=e36] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/o-nas/
- generic [ref=e39]: Nasza Pasieka i Historia Pszczelarza
- text:
- listitem [ref=e40]:
- link "Kontakt" [ref=e41] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/kontakt/
- generic [ref=e44]: Kontakt
- text:
- link [ref=e47] [cursor=pointer]:
- /url: "#"
- img [ref=e49]
- generic [ref=e53]:
- link [ref=e54] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/moje-konto/
- img [ref=e56]
- text:  
- link "0 0,00 zł" [ref=e61] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/koszyk/
- generic [ref=e62]:
- img [ref=e63]
- generic [ref=e66]: "0"
- paragraph [ref=e68]: 0,00
- main [ref=e69]:
- main [ref=e71]:
- generic [ref=e72]:
- generic [ref=e73]:
- generic [ref=e78]:
- heading "Królewskie Miody" [level=2] [ref=e82]
- heading "brakujący element twojego zdrowia" [level=2] [ref=e85]
- heading "Królewskie Miody to sprawdzona pasieka z Podkarpacia. Miód naturalny to nasz główny produkt handlowy. Pozyskujemy również pyłek pszczeli, pierzgę i propolis." [level=4] [ref=e88]
- link "Zobacz ofertę" [ref=e91] [cursor=pointer]:
- /url: /sklep
- generic [ref=e92]: Zobacz ofertę
- generic [ref=e95]:
- separator [ref=e101]
- generic [ref=e103]:
- heading "Witamy w Królewskich Miodach, miejscu, gdzie tradycja pszczelarska łączy się z pasją i miłością do natury." [level=4] [ref=e107]
- generic [ref=e110]:
- paragraph [ref=e111]: Nasze miody powstają w sercu podkarpacia, w czystym i nieskażonym środowisku, dzięki czemu zachowują swój wyjątkowy smak i aromat.
- paragraph [ref=e112]: Dbamy o to, aby nasze pszczoły miały najlepsze warunki do pracy, co przekłada się na jakość naszych miodów.
- paragraph [ref=e113]:
- text: Oferujemy miody tradycyjne zapakowane w stylowe opakowania, zestawy upominkowe oraz ciekawe kosze prezentowe.
- text: Jako sprzedawcy dbamy aby nasz miód z pasieki dawał pełne zadowolenie naszym Partnerom i Klientom indywidualnym.
- link "Zobacz nasze miody" [ref=e116] [cursor=pointer]:
- /url: /sklep
- generic [ref=e117]: Zobacz nasze miody
- generic [ref=e122]:
- heading "Zobacz jak powstają nasze miody" [level=3] [ref=e126]
- link "Dowiedz się więcej" [ref=e129] [cursor=pointer]:
- /url: /o-nas
- generic [ref=e130]: Dowiedz się więcej
- generic [ref=e138]:
- heading "Dlaczego warto wybrać nasze miody?" [level=3] [ref=e142]
- generic [ref=e145]:
- img "honey-pic13" [ref=e147]
- heading "Naturalne i nieprzetworzone" [level=4] [ref=e149]
- generic [ref=e152]:
- img "honey-pic14" [ref=e154]
- heading "Bez dodatku sztucznych barwników i konserwantów" [level=4] [ref=e156]
- generic [ref=e159]:
- img "honey-pic15" [ref=e161]
- heading "Prosto od polskiego pszczelarza" [level=4] [ref=e163]
- generic [ref=e168]:
- heading "Nasze produkty" [level=2] [ref=e172]
- list [ref=e177]:
- listitem [ref=e178]:
- generic [ref=e180]:
- generic [ref=e181]: W promocji
- generic [ref=e182]:
- link "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody" [ref=e183] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nektarowo-spadziowy-400g/
- img "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody" [ref=e185]
- link [ref=e187] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nektarowo-spadziowy-400g/
- img [ref=e188]
- link "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-nektarowo-spadziowy-400g/
- generic [ref=e193] [cursor=pointer]:
- generic [ref=e194]:
- heading "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody" [level=4] [ref=e195]:
- link "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody" [ref=e196] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nektarowo-spadziowy-400g/
- generic [ref=e197]:
- generic [ref=e199]: 25,00
- text:
- generic [ref=e201]: 50,00
- generic [ref=e202]: "Zakres cen: od 25,00 zł do 50,00 zł"
- listitem [ref=e203]:
- generic [ref=e205]:
- generic [ref=e206]:
- link "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody" [ref=e207] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/
- img "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody" [ref=e209]
- link [ref=e211] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/
- img [ref=e212]
- link "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/
- generic [ref=e217] [cursor=pointer]:
- generic [ref=e218]:
- heading "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody" [level=4] [ref=e219]:
- link "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody" [ref=e220] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/
- generic [ref=e221]:
- generic [ref=e223]: 25,00
- text:
- generic [ref=e225]: 50,00
- generic [ref=e226]: "Zakres cen: od 25,00 zł do 50,00 zł"
- listitem [ref=e227]:
- generic [ref=e229]:
- generic [ref=e230]:
- link "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody" [ref=e231] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-mniszkowy-400g/
- img "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody" [ref=e233]
- link [ref=e235] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-mniszkowy-400g/
- img [ref=e236]
- link "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-mniszkowy-400g/
- generic [ref=e241] [cursor=pointer]:
- generic [ref=e242]:
- heading "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody" [level=4] [ref=e243]:
- link "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody" [ref=e244] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-mniszkowy-400g/
- generic [ref=e245]:
- generic [ref=e247]: 25,00
- text:
- generic [ref=e249]: 50,00
- generic [ref=e250]: "Zakres cen: od 25,00 zł do 50,00 zł"
- listitem [ref=e251]:
- generic [ref=e253]:
- generic [ref=e254]:
- link "Miód Faceliowy 1,25 kg \"Królewski\" miód o łagodnym smaku | Królewskie Miody" [ref=e255] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-faceliowy-125-kg/
- img "Miód Faceliowy 1,25 kg \"Królewski\" miód o łagodnym smaku | Królewskie Miody" [ref=e257]
- link [ref=e259] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-faceliowy-125-kg/
- img [ref=e260]
- link "Miód Faceliowy 1,25 kg \"Królewski\" miód o łagodnym smaku | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-faceliowy-125-kg/
- generic [ref=e265] [cursor=pointer]:
- generic [ref=e266]:
- heading "Miód Faceliowy 1,25 kg „Królewski” miód o łagodnym smaku | Królewskie Miody" [level=4] [ref=e267]:
- link "Miód Faceliowy 1,25 kg „Królewski” miód o łagodnym smaku | Królewskie Miody" [ref=e268] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-faceliowy-125-kg/
- generic [ref=e271]: 50,00
- listitem [ref=e272]:
- generic [ref=e274]:
- generic [ref=e275]:
- link "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody" [ref=e276] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nawlociowy-1-25-kg/
- img "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody" [ref=e278]
- generic [ref=e279]:
- link [ref=e280] [cursor=pointer]:
- /url: /?add-to-cart=167
- img [ref=e281]
- link [ref=e284] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nawlociowy-1-25-kg/
- img [ref=e285]
- link "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-nawlociowy-1-25-kg/
- generic [ref=e290] [cursor=pointer]:
- generic [ref=e291]:
- heading "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody" [level=4] [ref=e292]:
- link "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody" [ref=e293] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nawlociowy-1-25-kg/
- generic [ref=e296]: 50,00
- listitem [ref=e297]:
- generic [ref=e299]:
- generic [ref=e300]:
- link "Miód wielokwiatowy - wczesna wiosna" [ref=e301] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-wielokwiatowy-wczesna-wiosna-900ml-1-25kg/
- img "Miód wielokwiatowy - wczesna wiosna" [ref=e303]
- generic [ref=e304]:
- link [ref=e305] [cursor=pointer]:
- /url: /?add-to-cart=155
- img [ref=e306]
- link [ref=e309] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-wielokwiatowy-wczesna-wiosna-900ml-1-25kg/
- img [ref=e310]
- link "Miód wielokwiatowy - wczesna wiosna":
- /url: https://krolewskie-miody.pl/produkt/miod-wielokwiatowy-wczesna-wiosna-900ml-1-25kg/
- generic [ref=e315] [cursor=pointer]:
- generic [ref=e316]:
- heading "Miód wielokwiatowy wczesna wiosna" [level=4] [ref=e317]:
- link "Miód wielokwiatowy wczesna wiosna" [ref=e318] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-wielokwiatowy-wczesna-wiosna-900ml-1-25kg/
- generic [ref=e321]: 49,00
- link "Przejdź do sklepu" [ref=e324] [cursor=pointer]:
- /url: /sklep
- generic [ref=e325]: Przejdź do sklepu
- heading "Zobacz opinie naszych klientów" [level=2] [ref=e334]
- generic [ref=e340]:
- heading "Nasza pasieka to owoc wieloletniej pracy i doświadczenia. Każdy słoik miodu to dla nas cenny dar natury, który chcemy zaoferować naszym klientom." [level=4] [ref=e344]
- generic [ref=e347]:
- paragraph [ref=e348]: Etap zbioru miodu od kwiatów do słoika kontroluje weterynaria natomiast od momentu załączenie etykiety na słoik przejmuje WIHARS i SANEPID.
- paragraph [ref=e349]: Profesjonalna i szybka obsługa oraz najwyższe standardy jakości to nasze atuty. Prowadzimy sprzedaż wysyłkową miodu pasiecznego od 2008 r dlatego dbamy o każdy szczegół związany z wysyłką.
- paragraph [ref=e350]: Zapraszamy do rozkoszowania się ich smakiem i aromatem, a także doświadczenia ich właściwości zdrowotnych znanych od wieków.
- generic [ref=e351]:
- paragraph [ref=e352]:
- text: Nie bez powodu
- link "slottica" [ref=e353] [cursor=pointer]:
- /url: https://slottica.com.pl/
- text: cieszy się dużą popularnością — oferuje różnorodne gry i wyjątkowe promocje dla każdego gracza.
- paragraph [ref=e354]:
- text: Platforma
- link "nine casino" [ref=e355] [cursor=pointer]:
- /url: https://ninecasino-poland.pl/
- text: stale rozszerza swoją ofertę, przyciągając nowych użytkowników i oferując atrakcyjne promocje.
- paragraph [ref=e356]:
- text: Bez względu na preferencje graczy,
- link "Parimatch" [ref=e357] [cursor=pointer]:
- /url: https://parimatchvpolsce.pl/
- text: zapewnia szeroki wybór możliwości i pełne zaangażowanie w jakość usług.
- paragraph [ref=e358]:
- text: Królewskie Miody staat voor geduld, natuurlijke balans en het respecteren van het ritme van de seizoenen, waar kwaliteit ontstaat door aandacht en zorgvuldige processen. In een vergelijkbare, bewuste benadering van keuzevrijheid kan
- link "hash lucky casino" [ref=e359] [cursor=pointer]:
- /url: https://hashlucky-game.nl/
- text: worden gezien als een afzonderlijk online moment dat men rustig en binnen persoonlijke grenzen benadert.
- paragraph [ref=e360]:
- text: De wereld van ambachtelijke honing draait om harmonie tussen natuur en mens, waarbij elke stap met aandacht wordt uitgevoerd. Vanuit dat idee van evenwicht en maatvoering past
- link "crystal roll casino" [ref=e361] [cursor=pointer]:
- /url: https://newcrystalroll.nl/
- text: binnen een digitale ruimte waar tempo en grenzen bewust worden bepaald.
- paragraph [ref=e362]:
- text: Królewskie Miody benadrukt dat echte waarde ontstaat door geduld en consistentie, niet door haast of overdaad. In dezelfde rustige logica kan
- link "gigaspinz casino" [ref=e363] [cursor=pointer]:
- /url: https://gigaspinz-online.nl/
- text: functioneren als een online activiteit die men met zelfcontrole en maat kiest.
- paragraph [ref=e364]:
- text: Zoals bij het verzamelen van honing elk detail telt en de juiste timing essentieel is, draait het bij Królewskie Miody om natuurlijke balans. Met diezelfde aandacht voor ritme kan
- link "slotLair casino" [ref=e365] [cursor=pointer]:
- /url: https://slotlair-game.nl/
- text: worden benaderd als een digitale keuze binnen duidelijke kaders.
- paragraph [ref=e366]:
- text: De zorg voor kwaliteit en authenticiteit staat centraal bij Królewskie Miody, waar processen niet worden overhaast maar zorgvuldig worden begeleid. Vanuit die gedachte kan
- link "seven casino" [ref=e367] [cursor=pointer]:
- /url: https://7casino-nl.nl/
- text: worden gezien als een online moment dat bewust wordt ingepland.
- paragraph [ref=e368]:
- text: Królewskie Miody bouwt op traditie en respect voor natuurlijke cycli, waarin evenwicht belangrijker is dan snelheid. In een vergelijkbare digitale context past
- link "vipzino casino" [ref=e369] [cursor=pointer]:
- /url: https://vipzino-slot.nl/
- text: als een activiteit die men met aandacht en binnen eigen grenzen kiest.
- paragraph [ref=e370]:
- text: Het ambacht achter honingproductie vraagt rust en een duidelijke structuur, zodat alles in harmonie blijft met de omgeving. Vanuit die benadering kan
- link "novadreams casino" [ref=e371] [cursor=pointer]:
- /url: https://novadreams-nl.nl/
- text: worden beschouwd als een afzonderlijk online kanaal dat men bewust selecteert.
- paragraph [ref=e372]:
- text: Królewskie Miody laat zien dat kwaliteit voortkomt uit balans en respect voor het proces, zonder overmatige druk of impulsiviteit. In diezelfde lijn kan
- link "monixbet casino" [ref=e373] [cursor=pointer]:
- /url: https://monixbet-slots.nl/
- text: functioneren als een digitale keuze binnen persoonlijke maatvoering.
- paragraph [ref=e374]:
- text: Zoals honing zich langzaam ontwikkelt tot een verfijnd product, benadrukt Królewskie Miody het belang van tijd en aandacht. Met diezelfde focus op beheersing kan
- link "starzino casino" [ref=e375] [cursor=pointer]:
- /url: https://starzino-nl.nl/
- text: worden gezien als een online moment dat men zorgvuldig benadert.
- paragraph [ref=e376]:
- text: De natuurlijke harmonie die Królewskie Miody uitstraalt, herinnert eraan dat balans essentieel is in elke omgeving. Vanuit dat perspectief past
- link "zumospin casino" [ref=e377] [cursor=pointer]:
- /url: https://zumospin-slots.nl/
- text: binnen een digitale ruimte waar keuzes bewust worden gemaakt.
- paragraph [ref=e378]:
- text: Królewskie Miody verbindt traditie met consistentie en een duidelijke structuur, waarin elk element bijdraagt aan het geheel. In dezelfde logica kan
- link "lunarspins casino" [ref=e379] [cursor=pointer]:
- /url: https://lunarspins-online.nl/
- text: worden benaderd als een online activiteit die binnen persoonlijke grenzen en met aandacht wordt gekozen.
- paragraph [ref=e380]:
- text: Królewskie Miody buduje swoją markę wokół naturalności, tradycji pszczelarskiej oraz konsekwentnej dbałości o jakość, podkreślając że prawdziwa wartość powstaje z cierpliwości, kontroli procesu i odpowiedzialnego podejścia do każdego etapu produkcji, gdzie równowaga między naturą a strukturą działania stanowi fundament stabilności, a w tej filozofii świadomego wyboru pojawia się również wymiar cyfrowy związany z
- link "nv casino bonus" [ref=e381] [cursor=pointer]:
- /url: https://nv-casino-bonus.pl/
- text: casino, gdzie przejrzyste zasady, jasno określone warunki i uporządkowana dynamika podkreślają znaczenie kontroli oraz przemyślanej decyzji.
- paragraph [ref=e382]:
- text: Rozwijając koncepcję harmonii i konsekwencji w budowaniu długoterminowej wartości, Królewskie Miody akcentują znaczenie planowania, stabilności i odpowiedzialnego zarządzania zasobami, wskazując że nawet w dynamicznym środowisku kluczowe pozostaje zachowanie struktury i jasnych reguł, a w tej perspektywie cyfrowej interakcji odniesienie znajduje
- link "szymool" [ref=e383] [cursor=pointer]:
- /url: https://szymool-casino.pl/
- text: casino, gdzie mechanika uczestnictwa opiera się na przejrzystości, kontrolowanej dynamice oraz świadomym podejmowaniu decyzji w uporządkowanym środowisku.
- paragraph [ref=e384]:
- text: krolewskie-miody.pl we współpracy z
- link "kasyno lotto" [ref=e385] [cursor=pointer]:
- /url: https://lotto-kasyno.pl/
- text: rozwija podejście oparte na zaufaniu, jakości i świadomych wyborach, gdzie kluczową rolę odgrywa spójność doświadczenia użytkownika. Podobnie jak w przypadku naturalnych produktów, gdzie liczy się pochodzenie i dbałość o każdy etap, tutaj tworzona jest przestrzeń cyfrowa zapewniająca przejrzystość oraz komfortową i logiczną interakcję.
- link "Przejdź do sklepu" [ref=e388] [cursor=pointer]:
- /url: /sklep
- generic [ref=e389]: Przejdź do sklepu
- generic [ref=e394]:
- heading "Blog" [level=2] [ref=e398]
- heading "Szukasz naturalnych sposobów na wzmocnienie odporności? A może chcesz dowiedzieć się, jak wykorzystać miód w kuchni? Na naszym blogu znajdziesz praktyczne porady dotyczące miodu i pszczelarstwa. Podzielimy się z Tobą naszą wiedzą i doświadczeniem.." [level=4] [ref=e401]
- generic [ref=e405]:
- generic:
- article [ref=e406]:
- generic [ref=e408]:
- link "Nalewka z barciaka" [ref=e409] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/jak-stosowac-ekstrakt-z-barciaka-by-czerpac-z-niego-korzysci-praktyczny-przewodnik/
- img "Nalewka z barciaka" [ref=e411]
- generic [ref=e412]:
- link [ref=e413] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2026/04/IMG_6684m-1200x824.jpg
- img [ref=e414]
- link [ref=e417] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/jak-stosowac-ekstrakt-z-barciaka-by-czerpac-z-niego-korzysci-praktyczny-przewodnik/
- img [ref=e418]
- generic [ref=e424]:
- generic [ref=e426]:
- generic [ref=e428]:
- generic [ref=e429]:
- text: 09.04.2026
- generic:
- heading "Jak stosować ekstrakt z barciaka, by czerpać z niego korzyści? Praktyczny przewodnik" [level=2] [ref=e431]:
- link "Jak stosować ekstrakt z barciaka, by czerpać z niego korzyści? Praktyczny przewodnik" [ref=e432] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/jak-stosowac-ekstrakt-z-barciaka-by-czerpac-z-niego-korzysci-praktyczny-przewodnik/
- generic [ref=e433]: Jak stosować ekstrakt z barciaka, by czerpać z niego korzyści? Praktyczny przewodnik W poprzednich artykułach odkryliśmy, że barciak większy to niezwykłe źródło zdrowia, a jego ekstrakt […]
- generic [ref=e435]:
- generic [ref=e436]:
- link "Czytaj dalej" [ref=e437] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/jak-stosowac-ekstrakt-z-barciaka-by-czerpac-z-niego-korzysci-praktyczny-przewodnik/
- article [ref=e438]:
- generic [ref=e440]:
- link "Nalewka z barciaka woskowego" [ref=e441] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/laboratorium-natury-co-kryje-ekstrakt-z-barciaka-i-jak-wplywa-na-twoje-zdrowie/
- img "Nalewka z barciaka woskowego" [ref=e443]
- generic [ref=e444]:
- link [ref=e445] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/01/IMG_6689-800x1200.jpg
- img [ref=e446]
- link [ref=e449] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/laboratorium-natury-co-kryje-ekstrakt-z-barciaka-i-jak-wplywa-na-twoje-zdrowie/
- img [ref=e450]
- generic [ref=e456]:
- generic [ref=e458]:
- generic [ref=e460]:
- generic [ref=e461]:
- text: 01.04.2026
- generic:
- heading "Laboratorium natury co kryje ekstrakt z barciaka i jak wpływa na Twoje zdrowie?" [level=2] [ref=e463]:
- link "Laboratorium natury co kryje ekstrakt z barciaka i jak wpływa na Twoje zdrowie?" [ref=e464] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/laboratorium-natury-co-kryje-ekstrakt-z-barciaka-i-jak-wplywa-na-twoje-zdrowie/
- generic [ref=e465]: Laboratorium natury co kryje ekstrakt z barciaka i jak wpływa na Twoje zdrowie? Skoro wiemy już, czym jest barciak większy, czas zajrzeć do wnętrza ekstraktu […]
- generic [ref=e467]:
- generic [ref=e468]:
- link "Czytaj dalej" [ref=e469] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/laboratorium-natury-co-kryje-ekstrakt-z-barciaka-i-jak-wplywa-na-twoje-zdrowie/
- article [ref=e470]:
- generic [ref=e472]:
- link "Intrakt z barciaka" [ref=e473] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/zapomniany-skarb-ula-czym-jest-barciak-wiekszy-i-dlaczego-warto-go-poznac/
- img "Intrakt z barciaka" [ref=e475]
- generic [ref=e476]:
- link [ref=e477] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/01/Nalewka-z-barciaka-woskowego-805x1200.jpg
- img [ref=e478]
- link [ref=e481] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/zapomniany-skarb-ula-czym-jest-barciak-wiekszy-i-dlaczego-warto-go-poznac/
- img [ref=e482]
- generic [ref=e488]:
- generic [ref=e490]:
- generic [ref=e492]:
- generic [ref=e493]:
- text: 01.04.2026
- generic:
- heading "Zapomniany skarb ula czym jest barciak większy i dlaczego warto go poznać?" [level=2] [ref=e495]:
- link "Zapomniany skarb ula czym jest barciak większy i dlaczego warto go poznać?" [ref=e496] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/zapomniany-skarb-ula-czym-jest-barciak-wiekszy-i-dlaczego-warto-go-poznac/
- generic [ref=e497]: Czy wiesz, że w cieniu znanych produktów pszczelich, takich jak miód, propolis czy pierzga, kryje się wyjątkowy surowiec, którego właściwości doceniano już w starożytności? Mowa o […]
- generic [ref=e499]:
- generic [ref=e500]:
- link "Czytaj dalej" [ref=e501] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/zapomniany-skarb-ula-czym-jest-barciak-wiekszy-i-dlaczego-warto-go-poznac/
- generic [ref=e509]:
- generic:
- term [ref=e512]:
- link [ref=e515] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0000_IMG_3645-scaled-1.jpg
- term [ref=e519]:
- link [ref=e522] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0001_borowka.jpg
- term [ref=e526]:
- link [ref=e529] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0002_2K2A7390l-1.jpg
- term [ref=e533]:
- link [ref=e536] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0003_Generative-Fill.jpg
- term [ref=e540]:
- link [ref=e543] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0005_2K2A4276m.jpg
- generic [ref=e547]:
- heading [level=1]
- contentinfo [ref=e548]:
- generic [ref=e552]:
- paragraph [ref=e563]:
- strong [ref=e564]: Królewskie Miody
- text: ", to nowoczesna i sprawdzona pasieka, zajmujące się produkcją, konfekcjonowaniem i sprzedażą MIODU I PRODUKTÓW PSZCZELICH."
- generic [ref=e566]:
- heading "Obsługa klienta" [level=4] [ref=e570]
- list [ref=e573]:
- listitem [ref=e574]:
- generic [ref=e576]:
- link "Regulamin" [ref=e578] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/regulamin/
- listitem [ref=e579]:
- generic [ref=e581]:
- link "Polityka prywatności" [ref=e583] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/polityka-prywatnosci/
- listitem [ref=e584]:
- generic [ref=e586]:
- link "Bezpieczeństwo zakupów" [ref=e588] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/bezpieczenstwo-zakupow/
- listitem [ref=e589]:
- generic [ref=e591]:
- link "Program partnerski" [ref=e593] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/program-partnerski/
- listitem [ref=e594]:
- generic [ref=e596]:
- link "Nota prawna" [ref=e598] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/nota-prawna/
- listitem [ref=e599]:
- generic [ref=e601]:
- link "Grupa operacyjna Zdrowa i innowacyjna pasieka" [ref=e603] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/grupa-operacyjna-zdrowa-i-innowacyjna-pasieka/
- generic [ref=e605]:
- heading "Kontakt" [level=4] [ref=e609]
- generic [ref=e612]:
- generic [ref=e614]:
- heading "696 098 797" [level=5] [ref=e616]
- generic [ref=e619]:
- generic [ref=e621]:
- heading "krolewskie.miody@op.pl" [level=5] [ref=e623]
- navigation "shop account menu" [ref=e624]:
- link "close menu" [ref=e625] [cursor=pointer]:
- /url: "#"
- generic "close menu" [ref=e626]: ✕
- heading "Logowanie" [level=4] [ref=e627]
- generic [ref=e628]:
- iframe [ref=e631]:
- button "Zaloguj się przez Google. Otwiera się w nowej karcie" [ref=f3e3] [cursor=pointer]:
- generic [ref=f3e5]:
- img [ref=f3e7]
- generic [ref=f3e14]: Zaloguj się przez Google
- paragraph [ref=e632]:
- generic: Nazwa użytkownika lub adres e-mail *
- textbox "Username" [ref=e633]
- text:
- paragraph [ref=e634]:
- generic: Hasło *
- generic [ref=e635]:
- textbox "Password" [ref=e636]
- button "Pokaż hasło" [ref=e637] [cursor=pointer]
- text:
- paragraph [ref=e640]:
- generic [ref=e641]:
- checkbox "Zapamiętaj mnie" [ref=e642]
- generic [ref=e643]: Zapamiętaj mnie
- button "Logowanie" [ref=e644] [cursor=pointer]
- paragraph [ref=e645]:
- link "Nie pamiętasz hasła?" [ref=e646] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/moje-konto/lost-password/
- generic [ref=e648]:
- generic [ref=e649]:
- list [ref=e650]:
- listitem [ref=e651]:
- link "Pliki cookies" [ref=e652] [cursor=pointer]:
- /url: "#"
- listitem [ref=e653]:
- link "Szczegóły" [ref=e654] [cursor=pointer]:
- /url: "#"
- listitem [ref=e655]:
- link "O plikach cookie" [ref=e656] [cursor=pointer]:
- /url: "#"
- generic [ref=e657]:
- paragraph [ref=e658]:
- strong [ref=e659]: Używamy plików cookies
- paragraph [ref=e660]: Aby zapewnić jak najlepsze wrażenia, korzystamy z technologii, takich jak pliki cookie, do przechowywania i/lub uzyskiwania dostępu do informacji o urządzeniu. Zgoda na te technologie pozwoli nam przetwarzać dane, takie jak zachowanie podczas przeglądania lub unikalne identyfikatory na tej stronie. Brak wyrażenia zgody lub wycofanie zgody może niekorzystnie wpłynąć na niektóre cechy i funkcje.
- contentinfo [ref=e661]:
- link "Odmowa" [ref=e662] [cursor=pointer]:
- /url: "#"
- link "Dostosuj" [ref=e663] [cursor=pointer]:
- /url: "#"
- generic [ref=e664]: Dostosuj
- link "Zezwól na wszystkie" [ref=e665] [cursor=pointer]:
- /url: "#"
- navigation "shop cart" [ref=e666]:
- generic [ref=e667]:
- link "✕" [ref=e668] [cursor=pointer]:
- /url: "#"
- generic [ref=e669]:
- heading "cart icon Koszyk" [level=3] [ref=e670]:
- generic "cart icon" [ref=e671]: 
- text: Koszyk
- generic [ref=e674]:
- paragraph [ref=e675]:
- generic [ref=e676]:
- paragraph [ref=e677]: Twój koszyk aktualnie jest pusty.
- generic [ref=e678]:
- generic [ref=e679]:
- generic [ref=e680]:
- text: "Kwota:"
- generic [ref=e682]: 0,00
- generic [ref=e683]:
- text: "Łącznie:"
- strong [ref=e684]:
- generic [ref=e686]: 0,00
- text:
- generic [ref=e687] [cursor=pointer]:
- generic [ref=e688]:
- 'button "Opinie klientów Świetnie Średnia ocena klientów: 4.9 /5 Ocena gwiazdkowa: 4.9 na 5 Łącznie opinii: 33 opinii" [ref=e689]':
- img [ref=e691]
- generic [ref=e692]: Opinie klientów
- generic [ref=e693]: Świetnie
- paragraph [ref=e694]:
- generic [ref=e695]: "Średnia ocena klientów:"
- generic [ref=e696]: "4.9"
- generic [ref=e697]: /5
- 'img "Ocena gwiazdkowa: 4.9 na 5" [ref=e698]'
- generic [ref=e700]:
- generic [ref=e701]: "Łącznie opinii:"
- text: 33 opinii
- paragraph [ref=e703]:
- link "ZOBACZ OPINIE" [ref=e704]:
- /url: https://www.ekomi-pl.com/opinie-a9727f9b519fbee42b92b08f261bdc46.html
- generic [ref=e705]: ZOBACZ OPINIE
- generic:
- button
- link:
- /url: https://www.ekomi-pl.com/opinie-a9727f9b519fbee42b92b08f261bdc46.html
- status [ref=e706]

View File

@@ -1,556 +0,0 @@
- generic [active] [ref=e1]:
- generic [ref=e2]:
- banner [ref=e3]:
- generic [ref=e4]:
- text:                 
- generic [ref=e9]:
- text:         
- link "logo-1" [ref=e13] [cursor=pointer]:
- /url: https://krolewskie-miody.pl
- img "logo-1" [ref=e14]
- list [ref=e17]:
- listitem [ref=e18]:
- link "Królewskie Miody Naturalne i zdrowe 🍯🐝🎁" [ref=e19] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/
- generic [ref=e22]: Królewskie Miody Naturalne i zdrowe 🍯🐝🎁
- text:
- listitem [ref=e23]:
- link "Sklep Online Miód, Pyłek, Mleczko " [ref=e24] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/sklep/
- generic [ref=e27]: Sklep Online Miód, Pyłek, Mleczko
- generic [ref=e29]:
- text:        
- listitem [ref=e30]:
- link "Blog wiedza o miodzie i pszczołach" [ref=e31] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/blog/
- generic [ref=e34]: Blog wiedza o miodzie i pszczołach
- text:
- listitem [ref=e35]:
- link "Nasza Pasieka i Historia Pszczelarza" [ref=e36] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/o-nas/
- generic [ref=e39]: Nasza Pasieka i Historia Pszczelarza
- text:
- listitem [ref=e40]:
- link "Kontakt" [ref=e41] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/kontakt/
- generic [ref=e44]: Kontakt
- text:
- link [ref=e47] [cursor=pointer]:
- /url: "#"
- img [ref=e49]
- generic [ref=e53]:
- link [ref=e54] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/moje-konto/
- img [ref=e56]
- text:  
- link "0 0,00 zł" [ref=e61] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/koszyk/
- generic [ref=e62]:
- img [ref=e63]
- generic [ref=e66]: "0"
- paragraph [ref=e68]: 0,00
- main [ref=e69]:
- main [ref=e71]:
- generic [ref=e72]:
- generic [ref=e73]:
- generic [ref=e78]:
- heading "Królewskie Miody" [level=2] [ref=e82]
- heading "brakujący element twojego zdrowia" [level=2] [ref=e85]
- heading "Królewskie Miody to sprawdzona pasieka z Podkarpacia. Miód naturalny to nasz główny produkt handlowy. Pozyskujemy również pyłek pszczeli, pierzgę i propolis." [level=4] [ref=e88]
- link "Zobacz ofertę" [ref=e91] [cursor=pointer]:
- /url: /sklep
- generic [ref=e92]: Zobacz ofertę
- generic [ref=e95]:
- separator [ref=e101]
- generic [ref=e103]:
- heading "Witamy w Królewskich Miodach, miejscu, gdzie tradycja pszczelarska łączy się z pasją i miłością do natury." [level=4] [ref=e107]
- generic [ref=e110]:
- paragraph [ref=e111]: Nasze miody powstają w sercu podkarpacia, w czystym i nieskażonym środowisku, dzięki czemu zachowują swój wyjątkowy smak i aromat.
- paragraph [ref=e112]: Dbamy o to, aby nasze pszczoły miały najlepsze warunki do pracy, co przekłada się na jakość naszych miodów.
- paragraph [ref=e113]:
- text: Oferujemy miody tradycyjne zapakowane w stylowe opakowania, zestawy upominkowe oraz ciekawe kosze prezentowe.
- text: Jako sprzedawcy dbamy aby nasz miód z pasieki dawał pełne zadowolenie naszym Partnerom i Klientom indywidualnym.
- link "Zobacz nasze miody" [ref=e116] [cursor=pointer]:
- /url: /sklep
- generic [ref=e117]: Zobacz nasze miody
- generic [ref=e122]:
- heading "Zobacz jak powstają nasze miody" [level=3] [ref=e126]
- link "Dowiedz się więcej" [ref=e129] [cursor=pointer]:
- /url: /o-nas
- generic [ref=e130]: Dowiedz się więcej
- generic [ref=e138]:
- heading "Dlaczego warto wybrać nasze miody?" [level=3] [ref=e142]
- generic [ref=e145]:
- img "honey-pic13" [ref=e147]
- heading "Naturalne i nieprzetworzone" [level=4] [ref=e149]
- generic [ref=e152]:
- img "honey-pic14" [ref=e154]
- heading "Bez dodatku sztucznych barwników i konserwantów" [level=4] [ref=e156]
- generic [ref=e159]:
- img "honey-pic15" [ref=e161]
- heading "Prosto od polskiego pszczelarza" [level=4] [ref=e163]
- generic [ref=e168]:
- heading "Nasze produkty" [level=2] [ref=e172]
- list [ref=e177]:
- listitem [ref=e178]:
- generic [ref=e180]:
- generic [ref=e181]: W promocji
- generic [ref=e182]:
- link "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody" [ref=e183] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nektarowo-spadziowy-400g/
- img "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody" [ref=e185]
- link [ref=e187] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nektarowo-spadziowy-400g/
- img [ref=e188]
- link "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-nektarowo-spadziowy-400g/
- generic [ref=e193] [cursor=pointer]:
- generic [ref=e194]:
- heading "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody" [level=4] [ref=e195]:
- link "Miód Nektarowo-Spadziowy 400g Leśny skarb z Podkarpacia | Królewskie Miody" [ref=e196] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nektarowo-spadziowy-400g/
- generic [ref=e197]:
- generic [ref=e199]: 25,00
- text:
- generic [ref=e201]: 50,00
- generic [ref=e202]: "Zakres cen: od 25,00 zł do 50,00 zł"
- listitem [ref=e203]:
- generic [ref=e205]:
- generic [ref=e206]:
- link "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody" [ref=e207] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/
- img "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody" [ref=e209]
- link [ref=e211] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/
- img [ref=e212]
- link "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/
- generic [ref=e217] [cursor=pointer]:
- generic [ref=e218]:
- heading "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody" [level=4] [ref=e219]:
- link "Miód Borówkowy z borówki amerykańskiej Rzadki, aromatyczny miód na oczy | Królewskie Miody" [ref=e220] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-borowkowy-400g/
- generic [ref=e221]:
- generic [ref=e223]: 25,00
- text:
- generic [ref=e225]: 50,00
- generic [ref=e226]: "Zakres cen: od 25,00 zł do 50,00 zł"
- listitem [ref=e227]:
- generic [ref=e229]:
- generic [ref=e230]:
- link "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody" [ref=e231] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-mniszkowy-400g/
- img "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody" [ref=e233]
- link [ref=e235] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-mniszkowy-400g/
- img [ref=e236]
- link "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-mniszkowy-400g/
- generic [ref=e241] [cursor=pointer]:
- generic [ref=e242]:
- heading "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody" [level=4] [ref=e243]:
- link "Miód mniszkowy (z mniszka lekarskiego) 400g Wiosenny skarb i naturalne wsparcie | Królewskie Miody" [ref=e244] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-mniszkowy-400g/
- generic [ref=e245]:
- generic [ref=e247]: 25,00
- text:
- generic [ref=e249]: 50,00
- generic [ref=e250]: "Zakres cen: od 25,00 zł do 50,00 zł"
- listitem [ref=e251]:
- generic [ref=e253]:
- generic [ref=e254]:
- link "Miód Faceliowy 1,25 kg \"Królewski\" miód o łagodnym smaku | Królewskie Miody" [ref=e255] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-faceliowy-125-kg/
- img "Miód Faceliowy 1,25 kg \"Królewski\" miód o łagodnym smaku | Królewskie Miody" [ref=e257]
- link [ref=e259] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-faceliowy-125-kg/
- img [ref=e260]
- link "Miód Faceliowy 1,25 kg \"Królewski\" miód o łagodnym smaku | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-faceliowy-125-kg/
- generic [ref=e265] [cursor=pointer]:
- generic [ref=e266]:
- heading "Miód Faceliowy 1,25 kg „Królewski” miód o łagodnym smaku | Królewskie Miody" [level=4] [ref=e267]:
- link "Miód Faceliowy 1,25 kg „Królewski” miód o łagodnym smaku | Królewskie Miody" [ref=e268] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-faceliowy-125-kg/
- generic [ref=e271]: 50,00
- listitem [ref=e272]:
- generic [ref=e274]:
- generic [ref=e275]:
- link "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody" [ref=e276] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nawlociowy-1-25-kg/
- img "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody" [ref=e278]
- generic [ref=e279]:
- link [ref=e280] [cursor=pointer]:
- /url: /?add-to-cart=167
- img [ref=e281]
- link [ref=e284] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nawlociowy-1-25-kg/
- img [ref=e285]
- link "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody":
- /url: https://krolewskie-miody.pl/produkt/miod-nawlociowy-1-25-kg/
- generic [ref=e290] [cursor=pointer]:
- generic [ref=e291]:
- heading "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody" [level=4] [ref=e292]:
- link "Miód Nawłociowy 1,25 kg Słoneczny miód na układ moczowy i prostatę | Królewskie Miody" [ref=e293] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-nawlociowy-1-25-kg/
- generic [ref=e296]: 50,00
- listitem [ref=e297]:
- generic [ref=e299]:
- generic [ref=e300]:
- link "Miód wielokwiatowy - wczesna wiosna" [ref=e301] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-wielokwiatowy-wczesna-wiosna-900ml-1-25kg/
- img "Miód wielokwiatowy - wczesna wiosna" [ref=e303]
- generic [ref=e304]:
- link [ref=e305] [cursor=pointer]:
- /url: /?add-to-cart=155
- img [ref=e306]
- link [ref=e309] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-wielokwiatowy-wczesna-wiosna-900ml-1-25kg/
- img [ref=e310]
- link "Miód wielokwiatowy - wczesna wiosna":
- /url: https://krolewskie-miody.pl/produkt/miod-wielokwiatowy-wczesna-wiosna-900ml-1-25kg/
- generic [ref=e315] [cursor=pointer]:
- generic [ref=e316]:
- heading "Miód wielokwiatowy wczesna wiosna" [level=4] [ref=e317]:
- link "Miód wielokwiatowy wczesna wiosna" [ref=e318] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/produkt/miod-wielokwiatowy-wczesna-wiosna-900ml-1-25kg/
- generic [ref=e321]: 49,00
- link "Przejdź do sklepu" [ref=e324] [cursor=pointer]:
- /url: /sklep
- generic [ref=e325]: Przejdź do sklepu
- heading "Zobacz opinie naszych klientów" [level=2] [ref=e334]
- generic [ref=e340]:
- heading "Nasza pasieka to owoc wieloletniej pracy i doświadczenia. Każdy słoik miodu to dla nas cenny dar natury, który chcemy zaoferować naszym klientom." [level=4] [ref=e344]
- generic [ref=e347]:
- paragraph [ref=e348]: Etap zbioru miodu od kwiatów do słoika kontroluje weterynaria natomiast od momentu załączenie etykiety na słoik przejmuje WIHARS i SANEPID.
- paragraph [ref=e349]: Profesjonalna i szybka obsługa oraz najwyższe standardy jakości to nasze atuty. Prowadzimy sprzedaż wysyłkową miodu pasiecznego od 2008 r dlatego dbamy o każdy szczegół związany z wysyłką.
- paragraph [ref=e350]: Zapraszamy do rozkoszowania się ich smakiem i aromatem, a także doświadczenia ich właściwości zdrowotnych znanych od wieków.
- generic [ref=e351]:
- paragraph [ref=e352]:
- text: Nie bez powodu
- link "slottica" [ref=e353] [cursor=pointer]:
- /url: https://slottica.com.pl/
- text: cieszy się dużą popularnością — oferuje różnorodne gry i wyjątkowe promocje dla każdego gracza.
- paragraph [ref=e354]:
- text: Platforma
- link "nine casino" [ref=e355] [cursor=pointer]:
- /url: https://ninecasino-poland.pl/
- text: stale rozszerza swoją ofertę, przyciągając nowych użytkowników i oferując atrakcyjne promocje.
- paragraph [ref=e356]:
- text: Bez względu na preferencje graczy,
- link "Parimatch" [ref=e357] [cursor=pointer]:
- /url: https://parimatchvpolsce.pl/
- text: zapewnia szeroki wybór możliwości i pełne zaangażowanie w jakość usług.
- paragraph [ref=e358]:
- text: Królewskie Miody staat voor geduld, natuurlijke balans en het respecteren van het ritme van de seizoenen, waar kwaliteit ontstaat door aandacht en zorgvuldige processen. In een vergelijkbare, bewuste benadering van keuzevrijheid kan
- link "hash lucky casino" [ref=e359] [cursor=pointer]:
- /url: https://hashlucky-game.nl/
- text: worden gezien als een afzonderlijk online moment dat men rustig en binnen persoonlijke grenzen benadert.
- paragraph [ref=e360]:
- text: De wereld van ambachtelijke honing draait om harmonie tussen natuur en mens, waarbij elke stap met aandacht wordt uitgevoerd. Vanuit dat idee van evenwicht en maatvoering past
- link "crystal roll casino" [ref=e361] [cursor=pointer]:
- /url: https://newcrystalroll.nl/
- text: binnen een digitale ruimte waar tempo en grenzen bewust worden bepaald.
- paragraph [ref=e362]:
- text: Królewskie Miody benadrukt dat echte waarde ontstaat door geduld en consistentie, niet door haast of overdaad. In dezelfde rustige logica kan
- link "gigaspinz casino" [ref=e363] [cursor=pointer]:
- /url: https://gigaspinz-online.nl/
- text: functioneren als een online activiteit die men met zelfcontrole en maat kiest.
- paragraph [ref=e364]:
- text: Zoals bij het verzamelen van honing elk detail telt en de juiste timing essentieel is, draait het bij Królewskie Miody om natuurlijke balans. Met diezelfde aandacht voor ritme kan
- link "slotLair casino" [ref=e365] [cursor=pointer]:
- /url: https://slotlair-game.nl/
- text: worden benaderd als een digitale keuze binnen duidelijke kaders.
- paragraph [ref=e366]:
- text: De zorg voor kwaliteit en authenticiteit staat centraal bij Królewskie Miody, waar processen niet worden overhaast maar zorgvuldig worden begeleid. Vanuit die gedachte kan
- link "seven casino" [ref=e367] [cursor=pointer]:
- /url: https://7casino-nl.nl/
- text: worden gezien als een online moment dat bewust wordt ingepland.
- paragraph [ref=e368]:
- text: Królewskie Miody bouwt op traditie en respect voor natuurlijke cycli, waarin evenwicht belangrijker is dan snelheid. In een vergelijkbare digitale context past
- link "vipzino casino" [ref=e369] [cursor=pointer]:
- /url: https://vipzino-slot.nl/
- text: als een activiteit die men met aandacht en binnen eigen grenzen kiest.
- paragraph [ref=e370]:
- text: Het ambacht achter honingproductie vraagt rust en een duidelijke structuur, zodat alles in harmonie blijft met de omgeving. Vanuit die benadering kan
- link "novadreams casino" [ref=e371] [cursor=pointer]:
- /url: https://novadreams-nl.nl/
- text: worden beschouwd als een afzonderlijk online kanaal dat men bewust selecteert.
- paragraph [ref=e372]:
- text: Królewskie Miody laat zien dat kwaliteit voortkomt uit balans en respect voor het proces, zonder overmatige druk of impulsiviteit. In diezelfde lijn kan
- link "monixbet casino" [ref=e373] [cursor=pointer]:
- /url: https://monixbet-slots.nl/
- text: functioneren als een digitale keuze binnen persoonlijke maatvoering.
- paragraph [ref=e374]:
- text: Zoals honing zich langzaam ontwikkelt tot een verfijnd product, benadrukt Królewskie Miody het belang van tijd en aandacht. Met diezelfde focus op beheersing kan
- link "starzino casino" [ref=e375] [cursor=pointer]:
- /url: https://starzino-nl.nl/
- text: worden gezien als een online moment dat men zorgvuldig benadert.
- paragraph [ref=e376]:
- text: De natuurlijke harmonie die Królewskie Miody uitstraalt, herinnert eraan dat balans essentieel is in elke omgeving. Vanuit dat perspectief past
- link "zumospin casino" [ref=e377] [cursor=pointer]:
- /url: https://zumospin-slots.nl/
- text: binnen een digitale ruimte waar keuzes bewust worden gemaakt.
- paragraph [ref=e378]:
- text: Królewskie Miody verbindt traditie met consistentie en een duidelijke structuur, waarin elk element bijdraagt aan het geheel. In dezelfde logica kan
- link "lunarspins casino" [ref=e379] [cursor=pointer]:
- /url: https://lunarspins-online.nl/
- text: worden benaderd als een online activiteit die binnen persoonlijke grenzen en met aandacht wordt gekozen.
- paragraph [ref=e380]:
- text: Królewskie Miody buduje swoją markę wokół naturalności, tradycji pszczelarskiej oraz konsekwentnej dbałości o jakość, podkreślając że prawdziwa wartość powstaje z cierpliwości, kontroli procesu i odpowiedzialnego podejścia do każdego etapu produkcji, gdzie równowaga między naturą a strukturą działania stanowi fundament stabilności, a w tej filozofii świadomego wyboru pojawia się również wymiar cyfrowy związany z
- link "nv casino bonus" [ref=e381] [cursor=pointer]:
- /url: https://nv-casino-bonus.pl/
- text: casino, gdzie przejrzyste zasady, jasno określone warunki i uporządkowana dynamika podkreślają znaczenie kontroli oraz przemyślanej decyzji.
- paragraph [ref=e382]:
- text: Rozwijając koncepcję harmonii i konsekwencji w budowaniu długoterminowej wartości, Królewskie Miody akcentują znaczenie planowania, stabilności i odpowiedzialnego zarządzania zasobami, wskazując że nawet w dynamicznym środowisku kluczowe pozostaje zachowanie struktury i jasnych reguł, a w tej perspektywie cyfrowej interakcji odniesienie znajduje
- link "szymool" [ref=e383] [cursor=pointer]:
- /url: https://szymool-casino.pl/
- text: casino, gdzie mechanika uczestnictwa opiera się na przejrzystości, kontrolowanej dynamice oraz świadomym podejmowaniu decyzji w uporządkowanym środowisku.
- paragraph [ref=e384]:
- text: krolewskie-miody.pl we współpracy z
- link "kasyno lotto" [ref=e385] [cursor=pointer]:
- /url: https://lotto-kasyno.pl/
- text: rozwija podejście oparte na zaufaniu, jakości i świadomych wyborach, gdzie kluczową rolę odgrywa spójność doświadczenia użytkownika. Podobnie jak w przypadku naturalnych produktów, gdzie liczy się pochodzenie i dbałość o każdy etap, tutaj tworzona jest przestrzeń cyfrowa zapewniająca przejrzystość oraz komfortową i logiczną interakcję.
- link "Przejdź do sklepu" [ref=e388] [cursor=pointer]:
- /url: /sklep
- generic [ref=e389]: Przejdź do sklepu
- generic [ref=e394]:
- heading "Blog" [level=2] [ref=e398]
- heading "Szukasz naturalnych sposobów na wzmocnienie odporności? A może chcesz dowiedzieć się, jak wykorzystać miód w kuchni? Na naszym blogu znajdziesz praktyczne porady dotyczące miodu i pszczelarstwa. Podzielimy się z Tobą naszą wiedzą i doświadczeniem.." [level=4] [ref=e401]
- generic [ref=e405]:
- generic:
- article [ref=e406]:
- generic [ref=e408]:
- link "Nalewka z barciaka" [ref=e409] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/jak-stosowac-ekstrakt-z-barciaka-by-czerpac-z-niego-korzysci-praktyczny-przewodnik/
- img "Nalewka z barciaka" [ref=e411]
- generic [ref=e412]:
- link [ref=e413] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2026/04/IMG_6684m-1200x824.jpg
- img [ref=e414]
- link [ref=e417] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/jak-stosowac-ekstrakt-z-barciaka-by-czerpac-z-niego-korzysci-praktyczny-przewodnik/
- img [ref=e418]
- generic [ref=e424]:
- generic [ref=e426]:
- generic [ref=e428]:
- generic [ref=e429]:
- text: 09.04.2026
- generic:
- heading "Jak stosować ekstrakt z barciaka, by czerpać z niego korzyści? Praktyczny przewodnik" [level=2] [ref=e431]:
- link "Jak stosować ekstrakt z barciaka, by czerpać z niego korzyści? Praktyczny przewodnik" [ref=e432] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/jak-stosowac-ekstrakt-z-barciaka-by-czerpac-z-niego-korzysci-praktyczny-przewodnik/
- generic [ref=e433]: Jak stosować ekstrakt z barciaka, by czerpać z niego korzyści? Praktyczny przewodnik W poprzednich artykułach odkryliśmy, że barciak większy to niezwykłe źródło zdrowia, a jego ekstrakt […]
- generic [ref=e435]:
- generic [ref=e436]:
- link "Czytaj dalej" [ref=e437] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/jak-stosowac-ekstrakt-z-barciaka-by-czerpac-z-niego-korzysci-praktyczny-przewodnik/
- article [ref=e438]:
- generic [ref=e440]:
- link "Nalewka z barciaka woskowego" [ref=e441] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/laboratorium-natury-co-kryje-ekstrakt-z-barciaka-i-jak-wplywa-na-twoje-zdrowie/
- img "Nalewka z barciaka woskowego" [ref=e443]
- generic [ref=e444]:
- link [ref=e445] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/01/IMG_6689-800x1200.jpg
- img [ref=e446]
- link [ref=e449] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/laboratorium-natury-co-kryje-ekstrakt-z-barciaka-i-jak-wplywa-na-twoje-zdrowie/
- img [ref=e450]
- generic [ref=e456]:
- generic [ref=e458]:
- generic [ref=e460]:
- generic [ref=e461]:
- text: 01.04.2026
- generic:
- heading "Laboratorium natury co kryje ekstrakt z barciaka i jak wpływa na Twoje zdrowie?" [level=2] [ref=e463]:
- link "Laboratorium natury co kryje ekstrakt z barciaka i jak wpływa na Twoje zdrowie?" [ref=e464] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/laboratorium-natury-co-kryje-ekstrakt-z-barciaka-i-jak-wplywa-na-twoje-zdrowie/
- generic [ref=e465]: Laboratorium natury co kryje ekstrakt z barciaka i jak wpływa na Twoje zdrowie? Skoro wiemy już, czym jest barciak większy, czas zajrzeć do wnętrza ekstraktu […]
- generic [ref=e467]:
- generic [ref=e468]:
- link "Czytaj dalej" [ref=e469] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/laboratorium-natury-co-kryje-ekstrakt-z-barciaka-i-jak-wplywa-na-twoje-zdrowie/
- article [ref=e470]:
- generic [ref=e472]:
- link "Intrakt z barciaka" [ref=e473] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/zapomniany-skarb-ula-czym-jest-barciak-wiekszy-i-dlaczego-warto-go-poznac/
- img "Intrakt z barciaka" [ref=e475]
- generic [ref=e476]:
- link [ref=e477] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/01/Nalewka-z-barciaka-woskowego-805x1200.jpg
- img [ref=e478]
- link [ref=e481] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/zapomniany-skarb-ula-czym-jest-barciak-wiekszy-i-dlaczego-warto-go-poznac/
- img [ref=e482]
- generic [ref=e488]:
- generic [ref=e490]:
- generic [ref=e492]:
- generic [ref=e493]:
- text: 01.04.2026
- generic:
- heading "Zapomniany skarb ula czym jest barciak większy i dlaczego warto go poznać?" [level=2] [ref=e495]:
- link "Zapomniany skarb ula czym jest barciak większy i dlaczego warto go poznać?" [ref=e496] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/zapomniany-skarb-ula-czym-jest-barciak-wiekszy-i-dlaczego-warto-go-poznac/
- generic [ref=e497]: Czy wiesz, że w cieniu znanych produktów pszczelich, takich jak miód, propolis czy pierzga, kryje się wyjątkowy surowiec, którego właściwości doceniano już w starożytności? Mowa o […]
- generic [ref=e499]:
- generic [ref=e500]:
- link "Czytaj dalej" [ref=e501] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/zapomniany-skarb-ula-czym-jest-barciak-wiekszy-i-dlaczego-warto-go-poznac/
- generic [ref=e509]:
- generic:
- term [ref=e512]:
- link [ref=e515] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0000_IMG_3645-scaled-1.jpg
- term [ref=e519]:
- link [ref=e522] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0001_borowka.jpg
- term [ref=e526]:
- link [ref=e529] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0002_2K2A7390l-1.jpg
- term [ref=e533]:
- link [ref=e536] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0003_Generative-Fill.jpg
- term [ref=e540]:
- link [ref=e543] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/wp-content/uploads/2025/03/galeria_0005_2K2A4276m.jpg
- generic [ref=e547]:
- heading [level=1]
- contentinfo [ref=e548]:
- generic [ref=e552]:
- paragraph [ref=e563]:
- strong [ref=e564]: Królewskie Miody
- text: ", to nowoczesna i sprawdzona pasieka, zajmujące się produkcją, konfekcjonowaniem i sprzedażą MIODU I PRODUKTÓW PSZCZELICH."
- generic [ref=e566]:
- heading "Obsługa klienta" [level=4] [ref=e570]
- list [ref=e573]:
- listitem [ref=e574]:
- generic [ref=e576]:
- link "Regulamin" [ref=e578] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/regulamin/
- listitem [ref=e579]:
- generic [ref=e581]:
- link "Polityka prywatności" [ref=e583] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/polityka-prywatnosci/
- listitem [ref=e584]:
- generic [ref=e586]:
- link "Bezpieczeństwo zakupów" [ref=e588] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/bezpieczenstwo-zakupow/
- listitem [ref=e589]:
- generic [ref=e591]:
- link "Program partnerski" [ref=e593] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/program-partnerski/
- listitem [ref=e594]:
- generic [ref=e596]:
- link "Nota prawna" [ref=e598] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/nota-prawna/
- listitem [ref=e599]:
- generic [ref=e601]:
- link "Grupa operacyjna Zdrowa i innowacyjna pasieka" [ref=e603] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/grupa-operacyjna-zdrowa-i-innowacyjna-pasieka/
- generic [ref=e605]:
- heading "Kontakt" [level=4] [ref=e609]
- generic [ref=e612]:
- generic [ref=e614]:
- heading "696 098 797" [level=5] [ref=e616]
- generic [ref=e619]:
- generic [ref=e621]:
- heading "krolewskie.miody@op.pl" [level=5] [ref=e623]
- navigation "shop account menu" [ref=e624]:
- link "close menu" [ref=e625] [cursor=pointer]:
- /url: "#"
- generic "close menu" [ref=e626]: ✕
- heading "Logowanie" [level=4] [ref=e627]
- generic [ref=e628]:
- iframe [ref=e631]:
- button "Zaloguj się przez Google. Otwiera się w nowej karcie" [ref=f3e3] [cursor=pointer]:
- generic [ref=f3e5]:
- img [ref=f3e7]
- generic [ref=f3e14]: Zaloguj się przez Google
- paragraph [ref=e632]:
- generic: Nazwa użytkownika lub adres e-mail *
- textbox "Username" [ref=e633]
- text:
- paragraph [ref=e634]:
- generic: Hasło *
- generic [ref=e635]:
- textbox "Password" [ref=e636]
- button "Pokaż hasło" [ref=e637] [cursor=pointer]
- text:
- paragraph [ref=e640]:
- generic [ref=e641]:
- checkbox "Zapamiętaj mnie" [ref=e642]
- generic [ref=e643]: Zapamiętaj mnie
- button "Logowanie" [ref=e644] [cursor=pointer]
- paragraph [ref=e645]:
- link "Nie pamiętasz hasła?" [ref=e646] [cursor=pointer]:
- /url: https://krolewskie-miody.pl/moje-konto/lost-password/
- generic [ref=e648]:
- generic [ref=e649]:
- list [ref=e650]:
- listitem [ref=e651]:
- link "Pliki cookies" [ref=e652] [cursor=pointer]:
- /url: "#"
- listitem [ref=e653]:
- link "Szczegóły" [ref=e654] [cursor=pointer]:
- /url: "#"
- listitem [ref=e655]:
- link "O plikach cookie" [ref=e656] [cursor=pointer]:
- /url: "#"
- generic [ref=e657]:
- paragraph [ref=e658]:
- strong [ref=e659]: Używamy plików cookies
- paragraph [ref=e660]: Aby zapewnić jak najlepsze wrażenia, korzystamy z technologii, takich jak pliki cookie, do przechowywania i/lub uzyskiwania dostępu do informacji o urządzeniu. Zgoda na te technologie pozwoli nam przetwarzać dane, takie jak zachowanie podczas przeglądania lub unikalne identyfikatory na tej stronie. Brak wyrażenia zgody lub wycofanie zgody może niekorzystnie wpłynąć na niektóre cechy i funkcje.
- contentinfo [ref=e661]:
- link "Odmowa" [ref=e662] [cursor=pointer]:
- /url: "#"
- link "Dostosuj" [ref=e663] [cursor=pointer]:
- /url: "#"
- generic [ref=e664]: Dostosuj
- link "Zezwól na wszystkie" [ref=e665] [cursor=pointer]:
- /url: "#"
- navigation "shop cart" [ref=e666]:
- generic [ref=e667]:
- link "✕" [ref=e668] [cursor=pointer]:
- /url: "#"
- generic [ref=e669]:
- heading "cart icon Koszyk" [level=3] [ref=e670]:
- generic "cart icon" [ref=e671]: 
- text: Koszyk
- generic [ref=e674]:
- paragraph [ref=e675]:
- generic [ref=e676]:
- paragraph [ref=e677]: Twój koszyk aktualnie jest pusty.
- generic [ref=e678]:
- generic [ref=e679]:
- generic [ref=e680]:
- text: "Kwota:"
- generic [ref=e682]: 0,00
- generic [ref=e683]:
- text: "Łącznie:"
- strong [ref=e684]:
- generic [ref=e686]: 0,00
- text:
- generic [ref=e687] [cursor=pointer]:
- generic [ref=e688]:
- 'button "Opinie klientów Świetnie Średnia ocena klientów: 4.9 /5 Ocena gwiazdkowa: 4.9 na 5 Łącznie opinii: 33 opinii" [ref=e689]':
- img [ref=e691]
- generic [ref=e692]: Opinie klientów
- generic [ref=e693]: Świetnie
- paragraph [ref=e694]:
- generic [ref=e695]: "Średnia ocena klientów:"
- generic [ref=e696]: "4.9"
- generic [ref=e697]: /5
- 'img "Ocena gwiazdkowa: 4.9 na 5" [ref=e698]'
- generic [ref=e700]:
- generic [ref=e701]: "Łącznie opinii:"
- text: 33 opinii
- paragraph [ref=e703]:
- link "ZOBACZ OPINIE" [ref=e704]:
- /url: https://www.ekomi-pl.com/opinie-a9727f9b519fbee42b92b08f261bdc46.html
- generic [ref=e705]: ZOBACZ OPINIE
- generic:
- button
- link:
- /url: https://www.ekomi-pl.com/opinie-a9727f9b519fbee42b92b08f261bdc46.html
- status [ref=e706]

4
.vscode/ftp-kr.json vendored
View File

@@ -15,6 +15,8 @@
"/.vscode",
"/.paul",
"/.serena",
"CLAUDE.md"
"CLAUDE.md",
".playwright-mcp",
".codebase-memory"
]
}

View File

@@ -35,6 +35,7 @@ if( !empty( get_post_meta(get_the_ID(), 'mfn-post-js', true) ) ) echo get_post_m
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<?php if( mfn_is_blocks() ): ?>