WP Plugin for Terms of Use

时间:2011-02-10 作者:Jackie

寻找一个插件,以确保我的网站的临时(未登录)用户将同意使用条款。也就是说,他们第一次尝试访问网站上的任何页面时,会显示条款并提示同意。如果suer同意,将其存储在DB(首选)或cookie中。

我遇到了“使用条款”插件,但它已经一年多没有更新了,我不确定它是否支持我的方案。

谢谢

2 个回复
SO网友:Bainternet

我以前写过这样的东西,在加载页面之前检查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,但如果有足够多的人会问,我会将其转换为插件并添加一个简单的管理面板。

享受

SO网友:editor

过去我对ToS插件做了一次更全面的调查,但发现它们除了在登录表单上添加一个额外的表单字段外,还缺少其他功能。例如,我想让用户在盲目同意之前浏览ToS,但这并不存在,所以我不得不编写它。

这就是说,登录表单没有核心其他部分那么多的操作和模板挂钩,因此这可能是它的一个副作用。

在显示任何内容之前,都需要达成一致意见,这是非常具体的,我很有信心你会走运的。但完全可行。

结束

相关推荐

How do you debug plugins?

我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?