webentwicklung-frage-antwort-db.com.de

Andere Seite für Erstbenutzer anzeigen

Gemäß meiner Anforderung muss eine Seite mit dem Hinweis firstpage.php für Benutzer angezeigt werden, die meine Website mit dem Hinweis first time besuchen. Anderenfalls muss die Startseite mit dem Hinweis homepage.php angezeigt werden.

Ich habe beide Seiten als page-templates erstellt

Bisher habe ich es geschafft, Cookies mit folgendem Code zu setzen

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/");
    }

Wenn ich den obigen Code verwende, wird er nicht zur erforderlichen URL umgeleitet und führt zu einem Fehler.

Die Seite wird nicht richtig umgeleitet

1
dh47

Ich habe ein Plugin gefunden, um meine Anforderung zu erhalten. Es wird mit cookies verwaltet. Wir müssen in meinem Fall Welcome URL A.K.A firstpage angeben und sie müssen auswählen, welche Seite zum zweiten Mal umgeleitet werden soll.

0
dh47

Füge folgenden Code in die theme functions.php ein: -

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

Verwenden Sie template_include mit Ihrer Bedingung für den ersten Besucher:

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;
}

NICHT template_redirect verwenden

Sie müssen testen, welche Lösung für einen erstmaligen Besucher funktioniert .

0
Brad Dalton