当前位置: 首页 > 工具软件 > QapTcha > 使用案例 >

php滑动解锁验证码,给WordPress加评论滑动解锁QapTcha验证

彭衡
2023-12-01

先看演示:

1、先去官网下载最新版的压缩包,解压。将jquery、images文件夹和php文件夹里的Qaptcha.jquery.php拷贝到主题下,比如我的主题yMoo下。

2、找到jquery/QapTcha.jquery.js,大约在15行

txtLock : 'Locked : form can\'t be submited', //可以改成中文“发表评论前,请滑动滚动条”解锁

txtUnlock : 'Unlocked : form can be submited', //可以改成中文“已解锁,可以发表评论了”

disabledSubmit : true,

autoRevert : false,

PHPfile : '/wp-content/themes/yMoo/Qaptcha.jquery.php' //这个很重要,路径错误,就不显示了

3、如果你要修改样式,请对照自己的主题修改QapTcha.jquery.css。

4、修改主题里的functions.php,加上

function my_wp_head() {//这个函数里的内容当然也可以直接写到header.php里

if(get_option('qt')!='' && is_singular() && !is_user_logged_in()) {

echo ''."\n";

echo ''."\n";

echo ''."\n";

echo ''."\n";

echo '

$(document).ready(function(){

$(".QapTcha").QapTcha({disabledSubmit:true});

});

'."\n";

}

}

add_action('wp_head', 'my_wp_head', 100);

function my_preprocess_comment($comment) {

if (get_option('qt')!='' && !is_user_logged_in()) {

if(!session_id()) session_start();

if(isset($_POST['iQapTcha']) && empty($_POST['iQapTcha']) && isset($_SESSION['iQaptcha']) && $_SESSION['iQaptcha']) {

//unset($_SESSION['iQaptcha']); //如果不用ajax评论的话,可以开启这项

return($comment);

} else err(__("Sorry, you can't be verified."));//提示语自行修改

} else

return($comment);

}

add_action('preprocess_comment', 'my_preprocess_comment');

5、然后修改主题的comments.php文件,找到你希望滚动条出现的位置,加上

这个代码.

常见问题请注意:

1、不要用wordpress自带的jquery.js,这个js文件功能不全,请去jquery的官网下载或者用google,雅虎或微软提供的cdn服务,还有就是用qaptcha自带的(这个可能版本有点老)。

2、jquery的引入一定要在qaptcha之前,有的朋友在页面中引入了两次jquery,一次在前,一次在后,也会导致失败。一定要把后面引入的那一个删掉。

3、还有就是路径的问题了,很多朋友拖到最右边也没法解锁,多数就是这个路径写错了,赶紧检查一下吧。

4、如果没有通过验证是返回一个wordpress提示,使用了“wp_die”函数。但是如果使用了Willin Kan的ajax提交评论的话,就必须得改改。可以看一下Willin Kan的comments-ajax.php 里面将“wp_die”改成了“err”。所以只要把上面代码中的wp_die改成err就没有问题了。

function my_preprocess_comment($comment) {

if (!is_user_logged_in()) {

if(!session_id()) session_start();

if(isset($_POST['iQapTcha']) && empty($_POST['iQapTcha']) && isset($_SESSION['iQaptcha']) && $_SESSION['iQaptcha']) {

unset($_SESSION['iQaptcha']);

return($comment);

} else err(__("抱歉,你没有通过验证。"));//提示语自行修改

} else

return($comment);

}

add_action('preprocess_comment', 'my_preprocess_comment');

这个参考这里。

这个插件不需要用户敲击键盘输入验证码,只需要像ios系统那样滑动下就可以解锁,在用户体验上也加分不少。

 类似资料: