EU nás přinutila dělat další blbosti, které se točí kolem sušenek prohlížečů. Vem čert fakt, že je to totální hovadina a zaměřme se na plugin pro WP GDPR Cookie Consent, který jsem po delším hledání vhodného pluginu uznal za rozumné a cenově dostupné řešení, tedy za 0 Kč. Alespoň prozatím. Na několika mých webech fungoval velmi dobře, jak se říká na první škubnutí, ale pak na dvou webech mi zlobil tak, že mi ukazoval menu staré verze tohoto programu, který jsem už před léty zkoušel pro cookie lištu. A jak jsem to celé vyřešil? Tak to popíšu v rychlosti níže.
Kde byl problém?
Problém byl v tom, s čím má problém mnoho pluginů a to v tom, že zanechává za sebou miliardu položek v DB i když dáte plugin plně odinstalovat. Někdy to má smysl, ale někdy ne a to bylo v tomto případě. Starý plugin totiž za sebou zanechal info o staré verzi, kterou nová verze brala jako důležitou informaci a podle toho se zachovala, tedy jako stará verze, což bylo nežádoucí. A to i když se v pluginu kliklo na tlačítko reset pluginu.
A jak jsem problémové místo našel?
No nakonec docela jednoduše. Najdete si text, který vás rozčiluje, v mém případě položku v menu, kterou jsem tam nechtěl. Text jsem potom hledal v DB a souborech pluginu. Našel jsem ho v jazykovém souboru POT, v kterém byla i reference na místo použití v kódu. Od toho to pak už bylo snadné. Našel jsem kód a v něm funkci check_if_old_category_table, které jsem vnutil návratovou hodnotu false. Plugin se pak začal chovat jak jsem požadoval, takže jsem prošel kód funkce. Ten mě zavedl na funkci get_cookie_db_version, která pomocí WP funkce get_option vracela hodnotu proměnné wt_cli_cookie_db_version. Tu pak stačilo dohledat v DB, porovnat databázové hodnoty funkčního webu a bylo vymalováno. Nakonec stačilo nastavit hodnotu wt_cli_cookie_db_version=2.0. To je vše.
Díky pitomému názvu proměnné mi tato hodnota utekla u ručního čištění bordelu pluginu v DB. Většina proměnných totiž měla jako prefix název pluginu, takže nebyl problém hodnoty dohledat a smazat. Mimochodem plugin po sobě zanechal ještě několik databázových tabulek, ale ty na odstranění problému neměli zásluhu, takže jsem je již dále neřešil.
Nakonec bych rád dodal, že místo pitomostí jako je nový absolutně nepoužitelný editor nebo správce widgetů, by bylo fajn, kdyby WP monitoroval všechny položky zapsané do DB nebo dělal něco jako snapshot databází, abyste mohli udělat plnou odinstalaci a vyčištění DB.