Phase 1 complete: - fbq noop na wp_head priority 1 — blokuje Facebook Pixel ze wszystkich źródeł (HFCM, PYS, woo-product-feed-pro) gdy brak zgody marketingowej - Early gtag consent update PHP-side dla powracających użytkowników — eliminuje race condition z GTM - Granularne filtry pys_disable_*_by_gdpr — PixelYourSite honoruje kategorie marketing/analytics - Fix: wp_unslash() przy odczycie $_COOKIE (WP wp_magic_quotes addslashes) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.5 KiB
5.5 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, started, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | duration | started | completed | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01-rodo-cookie-consent | 01 | tracking |
|
|
|
|
|
|
~4h | 2026-04-26T20:00:00Z | 2026-04-27T00:45:00Z |
Phase 1 Plan 01: Google Consent Mode v2 + Facebook Pixel GDPR — Summary
fbq noop + PYS filtry + early consent update wdrożone w Divi/functions.php; Facebook Pixel nie odpala bez zgody marketingowej, Consent Mode v2 działa poprawnie dla nowych i powracających użytkowników.
Performance
| Metric | Value |
|---|---|
| Duration | ~4h |
| Started | 2026-04-26 |
| Completed | 2026-04-27 |
| Tasks | 2 auto + 1 checkpoint |
| Files modified | 1 |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Powracający użytkownik — brak race condition | Pass | szkolenia_consent_early_update na wp_head priority 1, gtag update PRZED GTM |
| AC-2: Granularna blokada PixelYourSite | Pass | pys_disable_facebook_by_gdpr → facebook_disabled_by_api: true w pysOptions |
| AC-3: Kategorie zgody honorowane | Pass | fbq noop gdy brak "marketing", PYS filtry per-kategoria |
| AC-4: Consent Mode v2 defaults nie naruszone | Pass | cookies.php w header.php linia 4 bez zmian |
Accomplishments
- Zablokowany Facebook Pixel we wszystkich 3 źródłach: HFCM (snippet w DB), PixelYourSite, woo-product-feed-pro
gtag('consent', 'update')emitowany server-side przed GTM dla powracających użytkowników (eliminacja race condition)- Odkryto i naprawiono: WordPress
wp_magic_quotes()stosujeaddslashes()na$_COOKIE— wymaganewp_unslash()
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
wp-content/themes/Divi/functions.php |
Modified (dodano ~70 linii po 8883) | RODO: fbq noop + consent update + PYS filtry + woosea blokada |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| fbq noop zamiast remove_action | remove_action na HFCM statyczną metodę nie działał niezawodnie | Universalna blokada niezależna od źródła pixela |
| Divi/functions.php (nie body-relax) | Pliki są deployowane przez FTP — Divi jest aktywnym tematem deploywanych plików | Kod działa na serwerze produkcyjnym |
| wp_unslash() przy odczycie cookies | WP 6.x wp_magic_quotes() stosuje addslashes na $_COOKIE; json_decode na backslash-quoted JSON zwraca null |
Poprawny odczyt kategorii zgody |
Deviations from Plan
Summary
| Type | Count | Impact |
|---|---|---|
| Auto-fixed | 3 | Istotne — bez nich pixel nadal by odpalał |
| Scope additions | 1 | Niezbędne odkrycie (wp_unslash) |
| Deferred | 0 | — |
Auto-fixed Issues
1. Zły plik docelowy
- Found during: Task 1
- Issue: Kod dodany do
body-relax/functions.phpzamiastDivi/functions.php - Fix: Przeniesienie kodu do
Divi/functions.php - Verification: Kod działa na serwerze
2. Dodatkowe źródło fbq — woo-product-feed-pro
- Found during: Checkpoint verify
- Issue: Plugin AdTribes ma własny pixel hooked do wp_footer bez consent check
- Fix: Dodano
szkolenia_block_woosea_facebook_pixelna wp_footer priority 1 - Verification: remove_action działa prawidłowo dla tej funkcji
3. Główne źródło fbq — HFCM (nie PYS)
- Found during: Debugowanie
- Issue: Pixel w snippecie HFCM (DB) ignorował remove_action; WordPress addslashes na cookies łamał json_decode
- Fix: fbq noop na wp_head priority 1 + wp_unslash() w szkolenia_cnp_has_preference
- Verification: Playwright — fbqIsRealOrNoop=NOOP bez cookies, REAL z pełną zgodą
Issues Encountered
| Issue | Resolution |
|---|---|
PYS cookie_notice_integration_enabled: false — brak integracji z Cookie Notice Pro (niestandardowy plugin) |
PHP filtry pys_disable_*_by_gdpr zamiast natywnej integracji |
WordPress wp_magic_quotes() — addslashes() na $_COOKIE |
wp_unslash() przed json_decode() |
HFCM remove_action nieskuteczny dla statycznej metody podczas wp_head |
fbq noop — definicja window.fbq = function(){} przed wszystkimi skryptami |
Next Phase Readiness
Ready:
- RODO compliance dla Facebook Pixel, GA, Bing Ads — wdrożone
- Consent Mode v2 defaults + early update działają
- Wzorzec odczytu cookies z wp_unslash() udokumentowany
Concerns:
- GTM container (tagi/triggery consent-aware) — nie skonfigurowane, poza scope planu
- Testy na realnym urządzeniu z prawdziwym kliknięciem banera — niezrobione (plan zakłada checkpoint human-verify)
Blockers:
- Brak
Phase: 01-rodo-cookie-consent, Plan: 01 Completed: 2026-04-27