web-dev-qa-db-fra.com

Comment détecter la première visite d'un utilisateur?

Je souhaite créer une alerte pour les utilisateurs qui visitent mon blog WordPress. Existe-t-il une fonction conditionnelle telle que is_home() pour détecter si une personne visite le blog la première fois ? Je veux envoyer l'alerte à chaque nouvel utilisateur, peu importe le site sur lequel il est entré.

2
Pete St.

Non, il n'y a rien de tel dans le noyau.

Vous pouvez définir un cookie et le faire simplement (avertissement: un code non testé suit).

<?php
function is_first_time()
{
    if (isset($_COOKIE['_wp_first_time']) || is_user_logged_in()) {
        return false;
    }

    $domain = COOKIE_DOMAIN ? COOKIE_DOMAIN : $_SERVER['HTTP_Host'];

    // expires in 30 days.
    setcookie('_wp_first_time', '1', time() + (WEEK_IN_SECONDS * 4), '/', $domain);

    return true;
}

if (is_first_time()) {
     // it's the user's first time, do stuff!
}

Assurez-vous simplement que la mise en mémoire tampon de sortie est activée ou utilisez-la avant d'envoyer quoi que ce soit à l'écran pour vous assurer que le cookie est configuré.

5
chrisguitarguy

Modifié un peu par chrisguitarguy. Placez-le dans votre fichier functions.php et utilisez le conditionnel dans les modèles de thème, etc. via le hook

function is_first_time() {
    if (isset($_COOKIE['_wp_first_time']) || is_user_logged_in()) {
        return false;
    } else {
        // expires in 30 days.
        setcookie('_wp_first_time', 1, time() + (WEEK_IN_SECONDS * 4), COOKIEPATH, COOKIE_DOMAIN, false);

        return true;
    }
}
add_action( 'init', 'is_first_time');
1
Kegan Quimby