update
This commit is contained in:
@@ -1,135 +0,0 @@
|
||||
---
|
||||
phase: 01-rodo-cookie-consent
|
||||
plan: 01
|
||||
subsystem: tracking
|
||||
tags: [gdpr, rodo, facebook-pixel, google-consent-mode, pixelyoursite, hfcm, wordpress]
|
||||
|
||||
requires: []
|
||||
provides:
|
||||
- Facebook Pixel zablokowany bez zgody marketingowej (fbq noop)
|
||||
- Google Consent Mode v2 early update dla powracających użytkowników
|
||||
- PixelYourSite granularne filtry GDPR (marketing/analytics)
|
||||
affects: []
|
||||
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns:
|
||||
- "wp_unslash() przed json_decode($_COOKIE) w WordPress — wp_magic_quotes() stosuje addslashes na cookies"
|
||||
- "fbq noop pattern — window.fbq = function(){} na wp_head priority 1 blokuje wszystkie źródła pixela"
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- wp-content/themes/Divi/functions.php
|
||||
|
||||
key-decisions:
|
||||
- "fbq noop zamiast remove_action — universalne, niezależne od źródła pixela"
|
||||
- "wp_unslash() wymagane przy odczycie $_COOKIE w WordPress 6.x"
|
||||
- "Divi/functions.php zamiast body-relax/functions.php — motyw aktywnie deploywany"
|
||||
|
||||
patterns-established:
|
||||
- "Odczyt cookie w WordPress: wp_unslash() + urldecode() + json_decode()"
|
||||
|
||||
duration: ~4h
|
||||
started: 2026-04-26T20:00:00Z
|
||||
completed: 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()` stosuje `addslashes()` na `$_COOKIE` — wymagane `wp_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.php` zamiast `Divi/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_pixel` na 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*
|
||||
Reference in New Issue
Block a user