如何在用户浏览几分钟或浏览几个页面后强制登录?

时间:2013-01-06 作者:futeblogueiro

我希望用户在体验了站点之后,通过时间推移或/和浏览几个页面,重定向到自定义登录/注册页面。

我发现这段代码强制用户在访问网站之前登录,但我正在寻找更具体的内容。

add_action(\'template_redirect\', \'redirect_to_login\');

function redirect_to_login(){
 if(!is_user_logged_in()){
   // user not logged in so redirect them to login page
   $redirect_url = \'\' // you can determine where to redirect user after they login
   wp_redirect( wp_login_url($redirect_url), 301 ); exit;
 }
}
非常感谢!

1 个回复
SO网友:fuxia

你可以template_redirect 检查一块饼干。

只是一个想法,没有经过测试:

add_action( \'template_redirect\', \'t5_force_login_after_time_span\' );

function t5_force_login_after_time_span()
{
    $cookie_name = \'first_visit\';
    $now         = time();

    if ( is_user_logged_in() )
        return;

    if ( empty ( $_COOKIE[\'first_visit\'] ) )
    {
        setcookie( $cookie_name, $now, $now + WEEK_IN_SECONDS );
        return;
    }

    $first_visit = (int) $_COOKIE[\'first_visit\'];

    if ( ( $now - $first_visit ) > HOUR_IN_SECONDS )
        auth_redirect();
}
请注意,这违反了某些国家的法律,请参阅EU cookie law.

结束

相关推荐

我可以用什么替换‘.get_bloginfo(’url‘)。’用来返回当前URL而不是家庭地址?

我正在使用Any Mobile Theme Switcher 可在完整主题和移动主题之间自动切换的插件。唯一的问题是,“切换到移动站点”和“切换到完整站点”链接会将您带到主页,而不是当前页面。相关的代码位似乎是这样的:function show_theme_switch_link_func( $atts ){ $desktopSwitchLink = get_option(\'show_switch_link_for_desktop\'); glo