将首次使用的用户重定向到目标网页

时间:2013-08-04 13:12:33

标签: wordpress redirect

我在example.com上有一个Wordpress网站,我在example.com/landing-page上有一个登陆页面。登录页面有一个表格供用户填写以获得免费咨询。

有没有办法安装cookie或其他东西,以便当第一次访问者访问example.com时,他们会被重定向到example.com/landing-page。但是在他们填写着陆页上的表单后,下次他们访问example.com时,他们会看到常规主页(不会被重定向)。

3 个答案:

答案 0 :(得分:3)

您可以使用javascript。确保包含jQuery。

将以下内容添加到两个页面中包含的全局javascript文件中,因为我们将在主页和登录页面上使用这些帮助程序功能来检查cookie是否存在以及创建它。

<script>
function create_cookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime( date.getTime() + (days*24*60*60*1000) );
        expires = "; expires=" + date.toGMTString();
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}

function get_cookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) === ' ') {
            c = c.substring(1, c.length);
        }
        if (c.indexOf(nameEQ) === 0) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return null;
}
</script>

在您的主页上包含以下脚本,主要检查Cookie是否存在'form_submitted',如果不存在,则将用户重定向到目标网页。

<script>
// Redirect to landing page if 'form_submitted' cookie does not exist
if ( get_cookie( 'form_submitted' ) === 'undefined' ) {
    window.location.href = "http://xxx.com/landing-page";
}
</script>

在目标网页上,您需要添加以下javascript来绑定监听事件以提交表单,当它发生时会创建cookie,因此下次用户访问主页时,他们赢了不被重定向。

<script>
jQuery(document).ready(function($) {

    // Listen for the form submit event
    $('#form-id').on('submit', function(){

        // Create cookie so that the user is no longer redirected
        create_cookie('form_submitted', 'true', 30);

    });

});
</script>

我希望这会有所帮助。祝好运! =)

编辑: 我刚看完你的回答时,我刚看到原帖上留下的评论。只是想补充一点,我添加的create_cookie函数允许你在你希望cookie过期之前传递天数,在我的例子中为30,所以你可以将它设置得相当高,以使其持续更长时间。

显然,javascript cookie一直存在风险,人们会清除他们的浏览器cookie,但没有其他方法可以跟踪未登录的用户这样的事情。对于用户来说无法删除它的更安全是存储在服务器上的PHP会话,但这将比这更困难,甚至不是防弹,因为用于将用户与会话关联的用户数据可能会像IP,浏览器等一样发生变化,因此始终存在风险。

您在表单页面上可以看到的链接是“我已经填写了此表单,将我带到主网站”,该网站再次设置了cookie。

最后,您会注意到我的解决方案是轻量级的,并且不包含像$ .cookie这样的不必要的插件,因为我在很大程度上使用了javascript,只使用jQuery来准备文档并绑定提交事件。

答案 1 :(得分:1)

如果您需要一个插件来设置用户访问您的主页(而不是任何其他页面)的cookie,我之前遇到了同样的问题并创建了一个插件来处理

https://wordpress.org/plugins/redirect-to-welcome-or-landing-page

上找到它

您需要做的就是设置您需要将用户重定向到的URL,然后它将处理cookie创建和重定向代码,以便搜索引擎知道它是临时重定向。

答案 2 :(得分:0)

如果您没有很多时间,可能更容易安装插件并对其进行配置以满足您的需求。 试试http://wordpress.org/plugins/landing-pages/,如果不是您想要的,请尝试寻找更多插件。