谷歌的 reCAPTCHA 服务能够保护您的站点免受垃圾邮件和其他类型的自动滥用侵害。使用 Contact Form 7 插件的小伙伴都知道它有集成 reCAPTCHA 验证功能,我们可以使用该功能阻止垃圾邮件机器人提交的有害表单。但是,由于 reCAPTCHA API 使用的是谷歌的链接地址,而国内由于政策原因对谷歌地址进行了屏蔽,因此很多小伙伴都无法在国内的服务器上使用该功能来防止机器人发送的垃圾邮件投递。今天,赢聚网就来教各位小伙伴来解决国内无法使用 reCAPTCHA 验证功能的这个问题。

我们要找出 Contact Form 7 插件中调用 reCAPTCHA API 的文件,即 /contact-form-7/modules/recaptcha.php 文件,我们使用编辑工具打开该文件,分别找到如下链接地址并进行替换:

一、找到前端中 JS 的 src,大约在第 30 行,将:

https://www.google.com/recaptcha/api.js

修改为:

https://www.recaptcha.net/recaptcha/api.js

二、找到后端的 API 地址,大约在第 369 行,将:

https://www.google.com/recaptcha/api/siteverify

修改为:

https://www.recaptcha.net/recaptcha/api/siteverify

修改完成后,上传同步至服务器。至此,我们就可以实现在国内服务器的网站中正确使用 Contact Form 7 插件中的这个谷歌 reCAPTCHA 验证功能了。

不过细心的小伙伴会发现,因为 Contact Form 7 插件集成的谷歌 reCAPTCHA 验证功能是 V3 版本,而该版本在使用时会在全站页面的右下角出现一个小的 reCAPTCHA 标志:

reCAPTCHA badge

这个 reCAPTCHA 标志会影响我们站点的美观,同时也会和我们站点右下角的“返回顶部”或者“客服”等按钮冲突,那么,我们就来隐藏它吧!我们只需要在定义 CSS 样式表中,加入如下代码:

.grecaptcha-badge { visibility: hidden; }

这样,这个 reCAPTCHA 标志就会被彻底隐藏了,再也不会影响到我们页面的美观了!怎么样,小伙伴们,现在大家的国内站点都用上这个功能了么?