web-dev-qa-db-fra.com

Comment supprimer un mot de passe protégé crée des cookies lorsqu'un utilisateur s'est déconnecté du site

Je souhaitais supprimer tous les cookies définis pour les publications protégées par mot de passe lorsque l'utilisateur se déconnectait du site après être passé par ces publications protégées par mot de passe.

Y at-il une fonction pour faire cela?

1
Ankush Kalia

Le cookie post post est défini avec:

setcookie( 
    'wp-postpass_' . COOKIEHASH, 
     $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), 
     $expire, 
     COOKIEPATH, 
     COOKIE_DOMAIN, 
     $secure 
);

dans le fichier wp-login.php.

Nous pouvons ensuite utiliser le hook clear_auth_cookie, dans la fonction wp_clear_auth_cookie(), pour l’effacer à la déconnexion:

/**
 * Clear the Post Password Cookie on logout.
 *
 * @link http://wordpress.stackexchange.com/a/198890/26350
 */
add_action( 'clear_auth_cookie', function()
{    
    setcookie(  
       'wp-postpass_' . COOKIEHASH, 
       '', 
       time() - YEAR_IN_SECONDS, 
       COOKIEPATH, 
       COOKIE_DOMAIN 
    );
});
1
birgire