Dokumentacija

M Cookie Consent

M Cookie Consent yra BDAR sutikimų juosta WordPress svetainėms. Google Analytics 4, Google Tag Manager, Meta Pixel ir jūsų pačių head skriptai lieka užblokuoti tol, kol lankytojas nesutinka su atitinkama kategorija. Google Consent Mode v2 čia veikia be išorinės paslaugos, be paskyros ir be API rakto: sprendimą priima lankytojo naršyklė, o rezultatas telpa į vieną pirmosios šalies slapuką, todėl viso puslapio talpykla lieka nepaliesta. Vadovas skirtas dviem žmonėms: administratoriui, ką tik įjungusiam įskiepį, ir tam, kuriam reikia atitaisyti nepavykusį pakeitimą. Viskas, kas čia parašyta, sutikrinta su 1.0.1 versijos kodu.

Parašyta 1.1.2 versijai. WordPress 6.5+ PHP 7.4+

Diegimas ir kas iš tikrųjų nutinka įjungus

Įjungus sukuriamos dvi parinktys: mcc_settings su numatytaisiais nustatymais ir tuščias mcc_consent_log, kuriame iškart atsiranda vienintelis įrašas „activated“. Naudojama add_option funkcija, tad pakartotinis įjungimas jau sukonfigūruotoje svetainėje nieko neperrašo. Lankytojai kol kas nemato nieko: kol neįrašytas nė vienas sekimo ID, viešojoje svetainės dalyje nerodoma nei juosta, nei Consent Mode paleidimo eilutė, neįkeliami nei CSS, nei JavaScript failai. Įskiepis nesukuria jokio cron įvykio, jokios duomenų bazės lentelės, jokio REST maršruto ir niekaip nesikiša į el. laiškų siuntimą.

  1. Įdiekite ZIP failą per Įskiepiai → Pridėti naują → Įkelti įskiepį arba nukopijuokite aplanką m-cookie-consent į /wp-content/plugins/.
  2. Įjunkite įskiepį. Antraštėje nurodyti minimalūs reikalavimai: WordPress 6.5 ir PHP 7.4.
  3. Atverkite M Consent kairiajame administravimo meniu. Nuoroda Settings atsiranda ir šalia įskiepio pavadinimo ekrane Įskiepiai. Abu pavadinimai yra paties įskiepio, todėl lieka angliški, kol jo kas nors neišvers.
  • Sutikimo režimas: „Stay fully blocked“ (visiškas blokavimas), saugiausias variantas, nustatytas iš karto.
  • Slapuko galiojimas: 180 dienų.
  • Plaukiojantis nustatymų mygtukas: įjungtas.
  • Dizainas: Modern, plaukiojanti kortelė apačioje kairėje.
  • Akcento spalva #6d5cf5, teksto spalva #14171f.
  • Savo skripto kategorija: Marketing.
  • Sutikimo versija: 1.
  • Skiltyje Nustatymai → Privatumas, dalyje Policy Guide, atsiranda siūloma privatumo politikos pastraipa.
  • Kol neužpildyta bent viena sekimo integracija, viešojoje svetainės dalyje neišvedama nieko.

Kur rasti įskiepio ekranus

Įskiepis prideda vieną pagrindinio lygio meniu punktą M Consent su privatumo dashicon piktograma, 80 pozicijoje, todėl jis atsiduria meniu apačioje, netoli Nustatymų. Vienintelis jo poskyris vadinasi Settings ir atveria tą patį puslapį wp-admin/admin.php?page=m-cookie-consent. Meniu, puslapio atvaizdavimas ir pakartotinio sutikimo veiksmas reikalauja manage_options teisės, todėl paprastoje svetainėje juos pasiekia tik administratoriai. Ekranas padalytas į dvi puses: kairėje keturios nustatymų sekcijos, dešinėje dvi plokštės, Live preview ir Status & tools.

  • Tracking integrations: GA4, Tag Manager, Meta Pixel ir savo skripto laukai.
  • Consent behaviour: sutikimo režimas, slapuko galiojimas, plaukiojantis mygtukas, politikų nuorodos.
  • Banner texts: septyniolika neprivalomų laukų, perrašančių įdiegtus tekstus.
  • Appearance: dizainas, išdėstymas, akcento spalva, teksto spalva.
  • Live preview: sumažinta juostos peržiūra, atsinaujinanti berašant.
  • Status & tools: veikiančių paslaugų sąrašas, dabartinė sutikimo versija, „Preview on my site“ ir „Ask all visitors for consent again“. Ši plokštė rodo, kas išsaugota, o ne kas tinkama, todėl netinkamas ID čia vis tiek atrodo kaip veikianti paslauga.

Sekimo integracijos ir ką kiekviena atrakina

Visi šios sekcijos laukai atkeliauja tušti. Įrašykite tik tas paslaugas, kurias iš tikrųjų naudojate: juostoje rodomos būtent tos kategorijos, kurias įjungia jūsų konfigūracija, todėl svetainė vien su GA4 gauna dviejų kategorijų juostą ir nieko daugiau. Kiekvienas ID tikrinamas išsaugant ir dar kartą prieš išvedant į puslapį.

  • Google Analytics 4 ID. Numatytoji reikšmė tuščia. Formatas: G- ir nuo 4 iki 20 raidžių ar skaitmenų; išsaugoma didžiosiomis. Užpildžius juostoje atsiranda Analytics kategorija, o žyma įsijungia tik gavus sutikimą jai.
  • Google Tag Manager ID. Numatytoji reikšmė tuščia. Formatas: GTM- ir nuo 4 iki 10 raidžių ar skaitmenų; išsaugoma didžiosiomis. Užpildžius juostoje atsiranda abi kategorijos, Analytics ir Marketing, nes konteinerio turinys nežinomas. Pačiai konteinerio žymai priskiriamos abi kategorijos, o skriptas ją paleidžia vos gavęs sutikimą bent vienai iš jų. Taigi lankytojas, sutikęs vien su Analytics, vis tiek užsikrauna visą konteinerį, o jame esančias reklamos žymas stabdo tik Consent Mode signalai, ne šis įskiepis. Jei GA4 jau yra konteineryje, GA4 lauką palikite tuščią.
  • Meta Pixel ID. Numatytoji reikšmė tuščia. Tik skaitmenys, nuo 5 iki 20. Įsijungia tik gavus sutikimą Marketing kategorijai. noscript iframe atsarginio varianto sąmoningai nėra: lankytojas be JavaScript juostos nemato, vadinasi, sutikti negali.
  • Custom tracking script. Numatytoji reikšmė tuščia. Neapdorotas HTML head sekcijai, kartu su script žymomis. Keisti gali tik paskyros su unfiltered_html teise; visiems kitiems laukas yra tik skaitomas, o pateiktas pakeitimas atmetamas su pranešimu ir grąžinamas ankstesnis skriptas. Multisite tinkle šią teisę turi tik super administratoriai. Prieš ką nors čia klijuodami perskaitykite 8 skyrių: blokuojama siauriau, nei leidžia suprasti lauko pavadinimas.
  • Custom script category. Numatytoji reikšmė Marketing. Galimi pasirinkimai: Functional, Analytics ir Marketing. Necessary sąmoningai nesiūloma, kad sekimo kodas niekada neapeitų sutikimo.
Atsargiai

Netinkamas sekimo ID ne tik atmetamas, bet ir ištrinamas: laukas ištuštinamas, o ekrano viršuje parodoma klaida. Įklijavus seną UA- formato ID, ID su atsitiktiniu tarpu ar Pixel ID su brūkšneliais, integracija tyliai lieka išjungta, o kartu dingsta ir kategorija, kurią ji būtų įnešusi į juostą. Vėliau apie tai ekrane niekas nebeprimena, tad po kiekvieno išsaugojimo perskaitykite pranešimus ir patikrinkite, ar Status & tools vis dar rodo laukiamą paslaugą.

Išvaizda (Appearance)

Juostos išvaizdą valdo keturi nustatymai. Iš abiejų spalvų parinkiklių sudaromi CSS kintamieji, kurie įrašomi ir į :root bloką, ir tiesiai į kiekvieną juostos elementą, todėl CSS optimizavimo įskiepis jų nepašalins. Du šviesesni atspalviai pagrindiniam tekstui ir nuorodoms išvedami iš jūsų teksto spalvos automatiškai.

  • Design: numatytasis yra Modern, įdiegta apvalinta kortelė su akcento gradientu ir slapuko piktograma. „Match my website theme“ pateikia neutralią juostą, perimančią jūsų temos šriftą ir vizualiai neįkyrią.
  • Banner layout: numatytasis variantas yra plaukiojanti kortelė apačioje kairėje. Kiti variantai: apatinė juosta per visą plotį ir plaukiojanti kortelė apačioje dešinėje.
  • Accent colour: numatytoji #6d5cf5. Ji valdo pagrindinį mygtuką, piktogramą, jungiklius ir plaukiojantį mygtuką.
  • Text colour: numatytoji #14171f. Ji valdo antraštę ir pagrindinį tekstą tiek juostoje, tiek nuostatų lange.
Atsargiai

Priverstinai baltas yra tik pagrindinio mygtuko tekstas, taisykle #mcc-banner .mcc-btn--primary { color: #ffffff !important }. Juostos fonas taip pat baltas, todėl šviesi akcento spalva padaro „Accept all“ neįskaitomą. Plaukiojantis mygtukas genda kitaip: jo balta piktograma ateina iš .mcc-reopen { color: #ffffff } be !important, o dizaine „Match my website theme“ ši taisyklė perrašoma akcento spalva ant balto skritulio, tad šviesus akcentas piktogramą tiesiog ištrina. Blogiausiai baigiasi šviesi teksto spalva: antraštė, juostos žinutė, kategorijų pavadinimai ir aprašymai bei „Only necessary“ mygtuko tekstas priverstinai imami iš jūsų teksto spalvos su !important, todėl iš karto tampa neįskaitoma ir visa juosta, ir visas nuostatų langas. Nuo 1.0.1 versijos šios spalvos dar ir įrašomos tiesiai į elementus, tad nė viena tema, talpykla ar CSS optimizavimo įskiepis blogo pasirinkimo neišgelbės. Pasitikrinkite Live preview, paskui tikrą juostą per „Preview on my site“. Kelias atgal aprašytas 9 skyriuje.

Pirmasis nustatymas iš eilės

Atlikite šiuos veiksmus tokia tvarka ir nieko nereikės kartoti. Kiekvienas sekimo ID, savo skripto, jo kategorijos ar sutikimo režimo pakeitimas pakelia sutikimo versiją, todėl sudėjus visus pakeitimus į vieną išsaugojimą lankytojų klausiama vieną kartą, o ne penkis.

  1. Įrašykite tik tuos sekimo ID, kuriuos iš tikrųjų naudojate. Jei GA4 jau yra Tag Manager konteineryje, įrašykite tik GTM ID, o GA4 lauką palikite tuščią.
  2. Jei klijuojate savo skriptą, klijuokite tik script žymas ir nieko daugiau, tada nurodykite kategoriją. Numatytoji Marketing yra saugi prielaida bet kokiam reklamos kodui. Kas nutinka viskam, kas nėra script žyma, paaiškinta 8 skyriuje.
  3. Palikite „Before consent, Google tags…“ ties „Stay fully blocked (recommended)“.
  4. Nurodykite privatumo politikos nuorodą arba palikite lauką tuščią ir sutvarkykite puslapį per Nustatymai → Privatumas. Cookie policy nuorodą pridėkite tik jei turite atskirą puslapį.
  5. Palikite plaukiojantį nustatymų mygtuką įjungtą.
  6. Nustatykite akcento ir teksto spalvas ir patikrinkite jas Live preview lange.
  7. Visus Banner texts laukus palikite tuščius, nebent teisininkas pasakė kitaip.
  8. Išsaugokite ir perskaitykite pranešimus ekrano viršuje. Atmestas ID paminimas tik ten.
  9. Patikrinkite, ar Status & tools rodo būtent tas paslaugas, kurių tikitės, ir įsidėmėkite sutikimo versiją.
  10. Išvalykite puslapių talpyklą ir CDN. Padarykite tai prieš bandymą, o ne po jo: senas talpyklos puslapis neša seną sutikimo versiją ir bandymo rezultatas apgaus.
  11. Atverkite „Preview on my site“, tada išbandykite tikrą juostą privačiame naršyklės lange: sutikite, perkraukite, atšaukite plaukiojančiu mygtuku, atmeskite, perkraukite. Atvirame puslapyje atšaukimas veikia ne akimirksniu: atmetimo signalas, fbq revoke ir tiekėjų slapukų valymas įvyksta iš karto, bet į tą puslapį jau įterpti GA4, GTM ir Pixel skriptai tebeveikia, kol neperkrausite. Vertinkite rezultatą po perkrovimo.
  12. Įdėkite [m_cookie_settings] į privatumo ar slapukų politikos puslapį, kad sutikimą būtų galima atšaukti iš pastovaus adreso.

Pavojingi veiksmai ir kaip juos atitaisyti

Niekas šiame įskiepyje negali užrakinti jūsų wp-admin, blokuoti prisijungimo, paliesti wp_mail ar sukurti cron užduoties. Viešosios dalies klasė kuriama tik tada, kai užklausa nėra administravimo užklausa, o kode nėra nė vienos prisijungimo, pašto, cron ar REST integracijos. Užtat jis gali sugadinti viešuosius puslapius, užkrauti trečiųjų šalių išteklius dar niekam nesutikus, padaryti juostą nenaudojamą, panaikinti visus išsaugotus sutikimus, perrašyti jūsų konfigūraciją ir sunaikinti atskaitomybės žurnalą. Prie kiekvieno punkto nurodytas tikslus kelias atgal. Pirmuosius keturis perskaitykite dar prieš ką nors klijuodami į Custom tracking script.

  • Custom tracking script: neapdorotas kodas kiekvieno viešo puslapio head sekcijoje. Kodas netikrinamas. JavaScript sintaksės klaida jame nieko nesugadina: blokas išvedamas kaip type="text/plain", iki sutikimo apskritai neanalizuojamas, o po sutikimo įterpiamas kaip atskiras script elementas, tad klaida jame nepasiekia nei banner.js, nei jūsų temos. Tikrasis pavojus yra brokuotas HTML: neuždaryta žyma ar neuždarytas komentaras praryja likusią head dalį ir kartu su ja visą puslapį. Kaip atitaisyti: atverkite M Consent, ištuštinkite lauką, išsaugokite ir išvalykite talpyklą. Jei jūsų paskyra šio lauko keisti negali, tai nepadės, žiūrėkite ketvirtą šio sąrašo punktą.
  • Blokuojami tik skriptai, paveikslėliai ir iframe elementai. transform_gated_html() neutralizuoja lygiai du dalykus: script žymas, kurių type yra tuščias, text/javascript, application/javascript arba module, ir img bei iframe src atributą. Visa kita išvedama lygiai taip, kaip parašėte: link, style su išoriniu url(), object, embed, video, source, noscript ir meta http-equiv="refresh". Todėl trečiosios šalies šriftų stilių failas užsikrauna kiekvienam lankytojui vos nupiešus puslapį, dar iki bet kokio sutikimo, ir sugriauna visą įskiepio prasmę. O čia įklijuotas meta refresh nukreipia kiekvieną viešą svetainės puslapį, nors wp-admin lieka pasiekiamas. Kaip atitaisyti: klijuokite tik script žymas; jau įvykus bėdai ištuštinkite lauką kaip aukščiau arba, jei viešoji dalis jau nukreipia, naudokite 9 skyriaus WP-CLI komandą.
  • Skriptas su neįprastu type atributu apskritai neblokuojamas. Perrašymo mechanizmas veikia tik tada, kai type yra tuščias, text/javascript, application/javascript arba module. Visa kita grąžinama nepaliesta ir be blokavimo žymės, tad įskiepis tokio skripto ir po sutikimo neaktyvuoja. Jei naršyklė tą type vis dėlto laiko JavaScript, skriptas pasileidžia iškart ir be jokio sutikimo; jei nelaiko, jis nepasileidžia niekada. Kaip atitaisyti: pašalinkite type atributą iš savo iškarpos arba perkelkite sekimo kodą į tam skirtą integracijos lauką.
  • Gali būti, kad savo skripto iš nustatymų ekrano ištrinti apskritai nepavyks. render_custom_script() pažymi laukelį kaip readonly kiekvienam be unfiltered_html teisės, o sanitize_custom_script() pateiktą tuščią reikšmę atmeta ir su pranešimu grąžina ankstesnį skriptą. Tai liečia kiekvieną multisite svetainės administratorių, kuris nėra super administratorius, ir kiekvieną svetainę, kurioje apibrėžta DISALLOW_UNFILTERED_HTML, o daugelis valdomos prieglobos paslaugų tiekėjų taip daro iš karto. Sugedusi iškarpa tada lieka kiekvieno viešo puslapio head sekcijoje ir per sąsają jos išimti nebeįmanoma. Kaip atitaisyti, pageidautina tvarka: paleiskite wp option patch update mcc_settings custom_script '' (WP-CLI aplinkoje tikrinimo funkcija neužsikrauna); arba paprašykite super administratoriaus ištuštinti lauką; arba pašalinkite DISALLOW_UNFILTERED_HTML konstantą iš wp-config.php ir ištuštinkite patys; arba išjunkite įskiepį, tada išvedimas nutyla, o visi nustatymai lieka.
  • Advanced Consent Mode siunčia duomenis Google dar nesant jokio sutikimo. Pasirinkus „Load with all consent signals denied“, kiekvieno lankytojo naršyklė iškart parsisiunčia Google žymas ir išsiunčia atmestos būsenos signalus. Kelios ES priežiūros institucijos tokius signalus laiko duomenų tvarkymu. Kaip atitaisyti: grįžkite prie „Stay fully blocked (recommended)“ ir išsaugokite. Šis nustatymas susijęs su sutikimu, todėl sutikimo versija pakyla ir visų lankytojų klausiama iš naujo; išvalykite puslapių talpyklą.
  • Neįrašius nė vieno sekimo ID juostos nebūna visai. Juosta, Consent Mode paleidimo eilutė ir viešosios dalies failai išvedami tik tada, kai naudojama bent viena neprivaloma kategorija. Svetainė, kurios temoje įrašytas GA4 arba kuri Meta Pixel kelia per kitą įskiepį, juostos nerodys ir seks visus. Kaip atitaisyti: perkelkite tuos sekimo kodus į šį įskiepį. Filtras mcc_force_banner nėra lygiavertis pakaitalas: jis tik perjungia banner_enabled(), tad juosta pasirodo, bet neblokuojama visiškai nieko, nes įskiepis stabdo tik savo paties išvedamas žymas. Temoje įrašytą gtag GA4 bent jau prilaiko atmestos Consent Mode numatytosios reikšmės, kurias paleidimo eilutė nustato wp_head prioritetu 0; per kitą įskiepį keliamas Meta Pixel savo PageView išsiunčia dar iki bet kokio sprendimo ir nėra pridengtas niekaip, nes fbq revoke suveikia tik lankytojui ką nors paspaudus. Filtras tinka tik tada, kai sprendimą surenka ir paskelbia juosta, o įvykdo jūsų pačių kodas, kuris klauso mcc:consent įvykio; sekimo kodų perkėlimo jis nepakeičia.
  • Išjungus plaukiojantį nustatymų mygtuką nelieka nė vieno įdiegto būdo atšaukti sutikimą, o įprasta atsarginė išeitis gali neveikti. BDAR reikalauja, kad atšaukti būtų taip pat paprasta, kaip ir sutikti. Bėda ta, kad [m_cookie_settings], #mcc-settings ir window.mccShowSettings() visi remiasi banner.js ir nuostatų langu, o nė vienas, nė kitas nėra išvedamas, kol nenaudojama bent viena neprivaloma kategorija. Svetainėje, iš kurios sekimo priemonės vėliau buvo pašalintos, trumpasis kodas sukuria mygtuką, kuris nieko nedaro. Kaip atitaisyti: įjunkite plaukiojantį mygtuką atgal; o prieš jį išjungdami įsitikinkite, kad yra bent viena integracija arba kad mcc_force_banner filtras įjungtas.
  • „Ask all visitors for consent again“ iš nustatymų ekrano atsukti nebegalima. Šis mygtukas padidina consent_version, o tai akimirksniu panaikina visus lankytojų slapukus. Tikrinimo funkcija neleidžia šio skaičiaus sumažinti: paimama didesnioji iš išsaugotos ir pateiktos reikšmės. Tas pats pakėlimas įvyksta automatiškai pakeitus GA4 ID, GTM ID, Pixel ID, savo skriptą, jo kategoriją ar sutikimo režimą. Kol lankytojai sutinka iš naujo, matavimuose bus spraga. Kaip atitaisyti: mažesnę consent_version reikšmę įrašyti tiesiai į mcc_settings parinktį, kaip parodyta kitame skyriuje.
  • Filtruotus nustatymus į duomenų bazę visam laikui įrašo bet koks išsaugojimas nustatymų ekrane, o ne tik mygtukas „Ask all visitors for consent again“. handle_force_reconsent() nustatymus paima per MCC_Plugin::get_settings(), o šis jau būna praėjęs viešą mcc_settings filtrą, ir tą masyvą paduoda update_option() funkcijai. Paprastas Save Changes tą patį pasiekia kitu keliu: kiekvienas laukas užpildomas iš to paties filtruoto masyvo, tad forma įterptas reikšmes tiesiog grąžina atgal. Viskas, ką per tą filtrą įterpia tema, kodo iškarpa ar daugiakalbis įskiepis, praeina tikrinimo funkciją ir lieka išsaugota visam laikui, tyliai pakeisdama jūsų konfigūraciją: vykdymo metu išversta juostos antraštė tampa nuolatine juostos antrašte vos administratoriui pirmą kartą ką nors išsaugojus. Jei įterpta reikšmė paliečia su sutikimu susijusį raktą, pakyla ir versija, o paspaudus mygtuką šis pakėlimas prisideda prie paties mygtuko pakėlimo. Kaip atitaisyti: pašalinkite filtrą, tada iš naujo suveskite teisingas reikšmes nustatymų ekrane arba atkurkite mcc_settings iš duomenų bazės kopijos.
  • Sutikimo versijos pakėlimas kartu su nepavalyta talpykla lankytojui kainuoja du klausimus, ne vieną. Versija įrašoma į talpykloje gulintį HTML, todėl lankytojai, gavę senus puslapius, susikuria slapukus su sena versija. Vos talpyklą pagaliau išvalius, griežtas versijos tikrinimas panaikina visus tuos slapukus ir tie patys žmonės klausiami dar kartą. Kaip atitaisyti: po fakto niekaip, todėl talpyklą ir CDN valykite iškart po kiekvieno išsaugojimo, kuris pakelia versiją, o ne kitą rytą.
  • Atskaitomybės žurnalą naikina ne tik Delete, bet ir įprastas naudojimas. append_log() palieka paskutinius 50 įrašų, o visa kita nurašo per kiekvieną rašymą. Įtempta konfigūracijos keitimų savaitė tyliai perrašo seniausius įrašus, o eksporto mygtuko sąsajoje nėra. Kaip atitaisyti: niekaip. Jei mcc_consent_log laikote BDAR įrodymu, reguliariai nusikopijuokite jį komanda wp option get mcc_consent_log --format=json, o ne tik prieš šalindami įskiepį.
  • Ištrynus įskiepį sunaikinamos abi parinktys. Išjungimas nieko nepašalina, bet mygtukas Ištrinti ekrane Įskiepiai paleidžia uninstall.php, kuris ištrina mcc_settings ir mcc_consent_log. Multisite tinkle jis pereina visas tinklo svetaines ir ištrina abi parinktis iš kiekvienos. Kaip atitaisyti: tik duomenų bazės atsarginė kopija.
  • Šviesi teksto ar akcento spalva padaro juostą neįskaitomą visiems lankytojams. Nustatymų ekranas nenukenčia, todėl tai atitaisoma, bet Live preview yra vienintelė vieta, kur tai pastebėsite anksčiau už lankytojus. Kaip atitaisyti: grąžinkite spalvas Appearance sekcijoje arba įrašykite gamyklines reikšmes tiesiai į parinktį, kaip parodyta kitame skyriuje.
Atsargiai

Trijų dalykų iš nustatymų ekrano atsukti nebegalima: sutikimo versijos pakėlimo, savo skripto, kurio jūsų paskyra keisti negali, ištuštinimo ir įskiepio ištrynimo. Du dalykai tiesiog naikina duomenis: Ištrinti, kuris multisite tinkle iššluoja abi parinktis iš visų svetainių, ir paties žurnalo 50 įrašų riba, kuri per kiekvieną rašymą tyliai nurašo seniausius įrašus. Prieš spausdami Ištrinti ar „Ask all visitors for consent again“ pasidarykite duomenų bazės atsarginę kopiją. Visa kita šiame sąraše atitaisoma, dažniausiai per nustatymų ekraną, o likusi dalis iš komandinės eilutės. Jei tiesiog ieškote gedimo, geriau išjunkite įskiepį arba pervardykite jo aplanką: abu variantai palieka visas parinktis vietoje.

Atkūrimas be nustatymų ekrano

Visa įskiepio būsena telpa į dvi parinktis ir vieną aplanką, todėl sugadintą viešąją dalį visada galima atkurti iš komandinės eilutės. Prieš rašydami įsidėmėkite: nustatymų klasė kuriama tik administravimo užklausose, todėl WP-CLI aplinkoje jos tikrinimo funkcija neužsiregistruoja. Įrašas per wp option patenka lygiai toks, kokį parašėte: be patikros, be reikšmių apkarpymo, be teisių tikrinimo savo skriptui ir be didėjančios versijos apsaugos. Būtent todėl tai veikiantis avarinis išėjimas. Ir būtent todėl klaidinga reikšmė čia yra blogesnė nei klaidinga reikšmė ekrane: įrašius ID, kurio įskiepis panaudoti negali, seną UA- formato ar ID su tarpu, kategorijų skaičiuoklė vis tiek laiko paslaugą veikiančia, Status & tools ją rodo, o išvedimo etapas tyliai nespausdina nieko. Rezultatas: juosta prašo lankytojų sutikti su sekimo priemone, kurios nėra, ir nė viename ekrane nėra jokios klaidos. Po kiekvieno patikslinimo parinktį perskaitykite atgal.

  1. Pirmiausia sustabdykite žalą: išjunkite įskiepį arba pervardykite jo aplanką, jei net WP-CLI nepasiekiamas. Abu būdai iškart nutildo visą išvedimą ir nieko neištrina.
  2. Jei kaltas tik savas skriptas, ištuštinkite vien tą raktą, o likusią konfigūraciją palikite ramybėje. Tai ir pirmasis kelias tada, kai jūsų paskyra šio lauko nustatymų ekrane keisti negali; kitus tris išvardija 8 skyrius.
  3. Jei klaida buvo Advanced Consent Mode, grąžinkite consent_mode_style į basic.
  4. Jei dėl spalvų pasirinkimo juosta tapo neįskaitoma, grąžinkite gamyklines reikšmes į text_color ir accent_color.
  5. Jei netyčia pakėlėte sutikimo versiją, įrašykite ankstesnį skaičių. Lankytojai, kurių slapuke tebėra ta versija, vėl bus pripažinti.
  6. Po kiekvieno atskiro patikslinimo perskaitykite abi parinktis ir įsitikinkite, kad pakeitimas įsirašė būtent taip, kaip norėjote. Šių įrašų niekas netikrina ir apie klaidingą nepraneša.
  7. Išvalykite puslapių talpyklą ir CDN, tada perkraukite viešąją svetainę privačiame naršyklės lange.
  8. Įjunkite įskiepį atgal arba grąžinkite aplanko pavadinimą. Išsaugoti nustatymai tebėra vietoje.
# Stop all plugin output, keep every setting
wp plugin deactivate m-cookie-consent

# No WP-CLI? Renaming the folder deactivates it just as well
mv wp-content/plugins/m-cookie-consent wp-content/plugins/m-cookie-consent.off

# Clear only the custom tracking script.
# This works even when the settings screen refuses: the readonly textarea and
# the unfiltered_html check live in the admin sanitizer, which is not loaded here.
wp option patch update mcc_settings custom_script ''

# Return to full prior blocking
wp option patch update mcc_settings consent_mode_style basic

# Put the shipped colours back when the banner became unreadable
wp option patch update mcc_settings text_color '#14171f'
wp option patch update mcc_settings accent_color '#6d5cf5'

# Put the consent version back down (bypasses the monotonic guard)
wp option patch update mcc_settings consent_version 3

# Read back what is stored, after EVERY patch above.
# Nothing here is validated, so this is the only place a mistake shows up.
wp option get mcc_settings --format=json
wp option get mcc_consent_log --format=json

Gedimų paieška

Pirmiausia pažiūrėkite į Status & tools: ten matyti veikiančių paslaugų sąrašas ir dabartinė sutikimo versija, o šie du dydžiai paaiškina daugumą netikėtumų. Turėkite omenyje, kad plokštė rodo, kas išsaugota, o ne kas tinkama naudoti, tad ten įrašyta paslauga dar neįrodo, kad puslapyje kas nors išvedama.

  • Viešojoje svetainės dalyje juostos nėra, o Status & tools rodo „Active services: none“. Arba ID buvo atmestas išsaugant, arba jo iš viso neįrašėte. Įrašykite iš naujo ir stebėkite pranešimą ekrano viršuje.
  • Status & tools rodo paslaugą, bet puslapio kode dėl jos nėra nieko. Išsaugotas ID netinkamo formato, o taip nutinka, kai jis įrašytas per WP-CLI arba įterptas filtro. Juosta vis tiek prašo sutikimo tai kategorijai. Sutvarkykite ID nustatymų ekrane.
  • Juosta rodoma, bet GA4 nepasileidžia. Įsitikinkite, kad iš tikrųjų duotas sutikimas Analytics kategorijai, tada puslapio kode raskite žymą su id mcc-ga4-loader. Visiško blokavimo režimu ji išvedama kaip type="text/plain", o po sutikimo skriptas pakeičia ją tikra script žyma.
  • Užsikrovė visas GTM konteineris, nors lankytojas sutiko tik su Analytics. Taip ir sumanyta: konteinerio žymai priskirtos ir analytics, ir marketing kategorijos, o skriptas elementą aktyvuoja vos gavęs sutikimą bent vienai iš išvardytų. Konteineryje esančias reklamos žymas stabdo tik Consent Mode signalai.
  • Lankytojui ką tik atšaukus sutikimą sekimo priemonės tebeveikia. Irgi taip sumanyta ir tik iki kito puslapio užkrovimo: atmetimo signalas, fbq revoke ir tiekėjų slapukų valymas įvyksta iš karto, bet į atvirą puslapį jau įterpti skriptai nešalinami. Tikrinkite po perkrovimo.
  • Po atnaujinimo matomi seni tekstai ar senos spalvos. Abu failai versijuojami pagal MCC_VERSION, todėl versijos pakėlimas juos atnaujina, bet prieš svetainę stovinti talpykla ar CDN vis tiek atiduos seną HTML. Išvalykite abu.
  • Be aiškios priežasties visų klausiama iš naujo. Bet koks sekimo ID, savo skripto, jo kategorijos ar sutikimo režimo pakeitimas pakelia sutikimo versiją; tą patį daro ir pakartotinio sutikimo mygtukas. Palyginkite Consent version skaičių Status & tools plokštėje su tuo, ko tikitės.
  • Visų klausiama du kartus. Pirmą kartą paklausė senas talpyklos puslapis su sena versija; antrąjį klausimą sukėlė talpyklos išvalymas, dėl kurio ką tik įrašytas slapukas tapo negaliojantis. Kitą kartą talpyklą valykite iškart po išsaugojimo.
  • Plaukiojantis mygtukas užstoja pokalbių valdiklį. Jis fiksuotas apačioje kairėje, z-index 99999. Arba išjunkite jį ir naudokite [m_cookie_settings] ar nuorodą į #mcc-settings, arba perstilizuokite .mcc-reopen savo temoje.
  • [m_cookie_settings] mygtukas atsiranda, bet nieko nedaro. banner.js ir nuostatų langas išvedami tik tada, kai naudojama bent viena neprivaloma kategorija, tad svetainėje be integracijų trumpasis kodas yra negyvas. Grąžinkite integraciją arba įjunkite mcc_force_banner filtrą.
  • Savas skriptas nepasileidžia net po sutikimo. Patikrinkite jo type atributą: viską, kas nėra tuščia, text/javascript, application/javascript ar module, blokavimo mechanizmas apskritai praleidžia, todėl toks skriptas niekada neaktyvuojamas.

Privatumas ir duomenys

Įskiepis pats nesiunčia jokių išorinių užklausų. Jame nėra nei licencijos tikrinimo, nei naudojimo statistikos, nei atnaujinimų signalo, nei GeoIP paieškos, o visi jo failai keliauja iš jūsų pačių domeno. Vienintelės trečiųjų šalių užklausos svetainėje yra tos, kurias sukonfigūravote patys, ir jos suveikia tik po sutikimo, išskyrus 8 skyriuje aprašytą atvejį: viskas, kas nėra skriptas, paveikslėlis ar iframe, į savo skripto lauką įklijuota apskritai neblokuojama.

  • Lankytojo įrenginyje sukuriamas vienas slapukas mcc_consent. Jame saugomas JSON objektas su sutikimo versija, laiko žyma milisekundėmis ir pasirinktomis kategorijomis. Jokio identifikatoriaus.
  • Slapuko galiojimą lemia jūsų nurodyta „Remember the choice for“ reikšmė dienomis. Jis apribotas jūsų svetainės adreso keliu, pažymėtas SameSite=Lax, o per HTTPS ir Secure.
  • Duomenų bazėje saugomos dvi parinktys. mcc_settings laiko jūsų konfigūraciją. mcc_consent_log laiko paskutinius 50 konfigūracijos įvykių, kiekvieną su UTC laiko žyma, sutikimo versija ir tuo metu veikusių paslaugų sąrašu. Nė vienoje nėra nieko apie konkretų lankytoją. 50 įrašų riba galioja per kiekvieną rašymą, tad senesni įvykiai dingsta negrįžtamai.
  • Atšaukus Analytics sutikimą, skriptas panaikina slapukus _ga, prasidedančius _ga_, taip pat _gid ir _gat. Atšaukus Marketing, tas pats padaroma su _fbp ir _fbc.
  • Šis valymas apima ir patį serverio vardą, ir visus aukštesnio lygio domenus, tad lankytojas, paspaudęs „Only necessary“ adresu shop.example.com, sunaikina ir www.example.com slapukus _ga bei _ga_. Teisiškai tai nekenkia, bet nemaloniai nustebina, jei aukštesnio lygio svetainė priklauso kitiems. Numatykite tai iš anksto, jei juostą diegiate bendro domeno subdomene.
  • Skiltyje Nustatymai → Privatumas, dalyje Policy Guide, atsiranda visa tai aprašanti siūloma pastraipa, paruošta perkelti į jūsų politiką.

Šalinimas

Išjungus pasikeičia tik tai, kas išvedama: juosta dingsta, sekimo iškarpos nebespausdinamos, o visos parinktys lieka duomenų bazėje, todėl įjungus iš naujo atkuriama lygiai ta pati konfigūracija. Įskiepio ištrynimas ekrane Įskiepiai yra visiškai kitas veiksmas, nes paleidžiamas uninstall.php.

  • Ištrinant pašalinama: mcc_settings parinktis su visa jūsų konfigūracija.
  • Ištrinant pašalinama: mcc_consent_log parinktis su atskaitomybės įrašais.
  • Multisite tinkle uninstall.php pereina visas tinklo svetaines ir ištrina abi parinktis iš kiekvienos, ne tik iš tos, kurioje dirbote.
  • Lieka: mcc_consent slapukas, jau esantis lankytojų įrenginiuose. Serveris negali ištrinti slapuko, kurio pats ką tik nesukūrė, todėl jis tiesiog baigia galioti savo laiku.
  • Lieka: pastraipa, kurią iš Policy Guide persikėlėte į savo privatumo politiką.
  • Lieka: turinyje užsilikęs [m_cookie_settings], kuris nuo tol rodomas kaip paprastas tekstas, ir bet koks temos kodas, prikabintas prie įskiepio filtrų.
Atsargiai

Sąsajoje nėra jokio mcc_consent_log eksporto mygtuko, o naikina jį ne tik Ištrinti: žurnale lieka tik paskutiniai 50 įrašų, o visa kita nurašoma per kiekvieną rašymą, tad įtemptas mėnuo ištrina savo paties pradžią. Jei laikote jį savo BDAR atskaitomybės įrodymu, reguliariai nusikopijuokite komanda wp option get mcc_consent_log --format=json ir dar kartą prieš spausdami Ištrinti. Kai uninstall.php jau pasileido, grąžinti gali tik duomenų bazės atsarginė kopija.

Automatiniai atnaujinimai

Įskiepis tikrina majevski.com dėl naujų versijų ir siūlo jas per įprastą WordPress atnaujinimų langą — tas pats pranešimas, keitimų sąrašas ir diegimas vienu paspaudimu kaip ir bet kurio kito įskiepio. Tikrinimai talpinami podėlyje, niekada nelėtina puslapių ir veikia saugiai: jei majevski.com nepasiekiamas, svetainė tiesiog dirba toliau ir pabando vėliau. Atnaujinimo paketas priimamas tik iš majevski.com per HTTPS, o senesnė versija niekada nesiūloma. Versijos iki 1.1.0 atnaujinimų kanalo dar nepažįsta, todėl naujų leidimų nemato — vieną kartą rankiniu būdu įdiekite 1.1.0 ar naujesnę, ir visi vėlesni leidimai atkeliaus savaime.

Reikia kažko panašaus?

Viską šiame puslapyje suprojektavo, sukūrė ir prižiūri vienas žmogus. Jei to paties reikia jūsų verslui, parašykite, ką turite omenyje.

Rezervuoti pokalbį atsidaro naujame lange