1

我想禁用对某个页面的直接访问..

例如:

我有一个联系表格,当它被发送时,它会将客户重定向到感谢页面。

现在我希望只能通过重定向访问感谢页面,如果我将感谢页面的 url 放在浏览器上,我不希望它可以访问。

如何使用 wordpress 页面做到这一点?

4

3 回答 3

2

我认为当您提交联系表单时,您应该将表单保存在数据库中,然后生成成功代码。现在将此成功代码发送到感谢页面,然后检查代码是否存在,如果存在,将显示感谢页面。这样你就可以确定两件事

1) 客户只有在成功保存客户详细信息后才能查看感谢页面。

2) 仅当客户来自联系页面时,客户才查看感谢页面。

要实现这一点,您需要为感谢页面创建一个单独的页面模板。

于 2013-11-05T14:46:57.893 回答
2

“不完整”的可能性是检查$_SERVER['HTTP_REFERER']变量以查看该值是否等于应该将您带到感谢页面的联系页面的 URL。

我说它是不完整的,因为如果您要在联系页面上显示指向感谢页面的链接并且用户会单击该链接,那么 HTTP_REFERER 将是联系页面。

另一种可能性是生成一个唯一令牌,您可以将其添加到感谢页面 URL(和当前会话)中,并且感谢页面可以检查此令牌的存在和正确性。

于 2013-11-05T14:34:22.913 回答
0
add_action('template_redirect', function(){
// ID of the thank you page
if ( ! is_page(12345)) {
    return;
}

// coming from the form, so all is fine
if (wp_get_referer() == 'URL_OF_FORM') {
    return;
}


// we are on thank you page
// visitor is not coming from form
// so redirect to home
wp_redirect( get_home_url() );
exit; }
于 2019-07-25T03:40:00.043 回答