web-dev-qa-db-fra.com

La valeur du cookie ne peut pas être lue tant que je ne suis pas connecté au WP admin

Une fois connecté à l'administrateur WP, je peux actualiser le serveur frontal et voir la valeur de mon cookie générée sous le nom "hello world". Si je me déconnecte de l'administrateur, puis actualise mon serveur frontal, la valeur du cookie est désormais "rien", comme le montre mon exemple de fonction.

Cela ne se produit que lorsque je consulte le site Web en ligne. Lorsque je teste localement, je peux lire le cookie sans être connecté à l'administrateur WP. Des idées?

Voici ma fonction de test pour configurer le cookie

function test_cookie() {
    setcookie( 'test-cookie', 'hello world', time()+1209600, '/');
}
add_action( 'init', 'test_cookie' );

Voici la fonction permettant de sortir la valeur du cookie sur la page

function output_test_cookie() {

    if ( isset( $_COOKIE['test-cookie'] ) )
        echo $_COOKIE["test-cookie"]; // should output hello world, but only does this when logged into WP admin
    else
        echo 'nothing';
}
add_action( 'template_redirect', 'output_test_cookie' );
2
Andrew

Il semble que j'avais besoin d'utiliser un crochet plus tôt. L'utilisation des crochets d'action wp ou init me permet de lire la valeur du cookie sans me connecter d'abord à l'administrateur.

function output_test_cookie() {

if ( isset( $_COOKIE['test-cookie'] ) )
    echo $_COOKIE["test-cookie"];
}
add_action( 'wp', 'output_test_cookie' ); // wp or init is needed
3
Andrew