Wordpress – Stergerea Automata a Cookie-urilor Invalide

Prezenta cookie-urilor in browser cand sesiunea nu mai este valida, prezinta o mare problema pentru solutiile de cache (cloduflare, varnish, etc). Rezolvarea pentru a scapa de aceasta problema este relativ simpla si nu implica prea multa munca, nu trebuie decat sa cunoastem ce cookie-uri nu mai sunt utile cand sesiunea nu mai este valida si in consecinta sa le eliminam la accesarea unei pagini din website.

In wordpress exista cazuri cand sesiunea nu mai este valida, dar in browser au ramas coocki-uri active, caz in care cache-ul pe server sau CDN (sau un reverse proxy) nu functioneaza corect.

Pentru a rezolva aceasta problema de care practic sufrea milioane de site-uri, aveti mai jos o solutie foarte simpla. Nu trebuie decat sa copiati codul si sa-l adaugati in fisierul functions.php din tema activa!

function byrev_Clean_WP_NotLoggedIn() {
    if ( !is_user_logged_in() && !empty($_COOKIE)) {
        $urlparts = parse_url(site_url());
        $domain = $urlparts [host];
        foreach ($_COOKIE as $key => $val) {
            if (preg_match("/wordpress/i", $key) || preg_match("/wp/i", $key)) {
                unset($_COOKIE[$key]);
                setcookie($key, null, -1, '/', $domain);
                setcookie($key, null, -1, '/');
            }
        }
        unset($_COOKIE['tk_ai']);
        setcookie('tk_ai', null, -1, '/');        
    }
}
byrev_Clean_WP_NotLoggedIn();

Notă:

În acest caz, cel mai important cookie care trebuie șters este wordpress_logged_in_ *, restul sunt mai puțin importante.

byrev Written by:

Be First to Comment

    Leave a Reply

    Your email address will not be published. Required fields are marked *