我以前写过这样的东西,在加载页面之前检查cookie,如果找不到cookie,页面会显示服务条款之类的内容和一个要同意的复选框,因此只有在客人同意后,他才能看到内容。
我看看能不能找到那个代码。
更新
O.k找到了大部分,因此我们创建了一个功能,检查用户是否登录,如果没有,我们检查他是否有我们的cookie,如果没有,我们显示我们的T.O.S而不是内容,因此我们将其挂接到\\u content挂钩
function to add_filter(\'the_content\',\'check_tos_656\');
function check_tos_656($content){
//only for none logged in guests
if (!is_user_logged_in()){
//check if guest has agree cokkie
if(!check_cookie_tos()){
$content = show_tos();
}
}
return $content;
}
不,你可以在那里看到两个函数
check\\u cookie\\u tos()一个函数,查看cookie是否存在因此,它们是:
function check_cookie_tos(){
if (isset($_COOKIE[\'agreed_TOS\'])){
if ($_COOKIE[\'agreed_TOS\'] =="I_aggre"){
return true
}
}
return false;
}
function show_tos(){
$out = \'<h3>You Must Agree to our T.O.S blablabla</h3>
//here you can put your TOS
blablabla
blablabla
blablabla\';
$out .= \'<form name="tos_check" method="POST" action="">
<p>
<input type="checkbox" name="tos_agree" id="tos_agree" value="yes" /> I Agree!<br />
<input type="submit" name="submit_tos" id="submit_tos" value="submit">
</p></form\';
return $out;
}
现在您可以看到,我们有一个表单,可以将客人的协议提交给T.O.s,因此我们需要处理该表单并创建cookie,如下所示:
if (isset($_POST[\'check_cookie_tos\']) && $_POST[\'check_cookie_tos\'] == "yes"){
setcookie("agreed_TOS", "I_aggre", time()+3600, "/", str_replace(\'http://www\',\'\',get_bloginfo(\'url\')) );
}
你必须在代码中设置自己的T.O.S,但如果有足够多的人会问,我会将其转换为插件并添加一个简单的管理面板。
享受