web-dev-qa-db-fra.com

Afficher une page différente pour le premier utilisateur

Selon mes besoins, je dois afficher une page avec firstpage.php pour les utilisateurs qui visitent mon site pour first time, sinon la page d'accueil devrait afficher homepage.php.

J'ai créé ces deux pages en tant que page-templates

Jusqu'à présent, j'ai réussi à utiliser des cookies en utilisant le code ci-dessous.

if (!isset($_COOKIE['visited'])) { // no cookie, so probably the first time here
        setcookie ('visited', 'yes', time() + 3600); // set visited cookie

        header("Location: index.php");
        exit(); // always use exit after redirect to prevent further loading of the page
    }
else{ 
         header("Location: index.php/first-page/");
    }

Lorsque j'utilise le code ci-dessus, il n'est pas redirigé vers l'URL requise, ce qui entraîne une erreur.

La page ne redirige pas correctement

1
dh47

J'ai trouvé un plugin pour obtenir mon exigence, il est géré à l'aide de cookies nous devons fournir Welcome URL A.K.A firstpage dans mon cas et nous devons sélectionner la page à rediriger pour la deuxième fois.

0
dh47

Mettez le code ci-dessous dans le thème functions.php: -

add_action('template_redirect','wdm_redirect');
function wdm_redirect(){
$ip = $_SERVER['REMOTE_ADDR'];
$value = get_option($ip);

     if ($value == '') {                 
                update_option($ip,1);
                        wp_redirect(site_url('first-page'));
                        exit(); // always use exit after redirect to prevent further loading of the page
      } 

}
0
WisdmLabs

Utilisez template_include avec votre condition pour premier visiteur:

add_filter( 'template_include', 'first_time_visitor_template', 99 );

function first_time_visitor_template( $template ) {

    if ( // your conditional for first time visitor {
        $new_template = locate_template( array( 'first-time-template.php' ) );
        if ( '' != $new_template ) {
            return $new_template ;
        }
    }

    return $template;
}

N'utilisez PAS template_redirect

Vous devrez tester quelle solution fonctionne pour un visiteur novice .

0
Brad Dalton