我一直认为Google reCAPTCHA是最好的表单验证插件,没有之一。
Gravity Forms作为WordPress界最强的表单插件之一,也提供了免费的表单验证功能,它接入的也是Google reCAPTCHA,可惜国内用户是无法直接使用的。因为谷歌API在原有域名下均已被阻断,但是部分有用的服务比如验证码、字体等,其实是有其他备用域名可以使用的,而Gravity Forms似乎并不太关心我们国内用户,所以就没有提供采用备用域名接口的选项,需要自己手动调整。
在主题的function.php里加入以下代码,替换Gravity Forms原本的谷歌验证码API调用就行了:
//gravity forms google recaptcha function brain1981_replace_google_recaptcha_script() { if(wp_script_is('gform_recaptcha')){ wp_deregister_script( 'gform_recaptcha' ); wp_enqueue_script( 'gform_recaptcha', 'https://www.recaptcha.net/recaptcha/api.js?hl=zh-hans&render=explicit', array(), false, true ); } } add_action( 'wp_footer', 'brain1981_replace_google_recaptcha_script', 5 ); add_action( 'gform_preview_footer', 'brain1981_replace_google_recaptcha_script'); |
如果要接入英文版,只要把调用的js地址后面hl参数改成en就行了。
假如网站用了WPML多语言插件,则可以根据常量自动显示recaptcha的界面语言
//gravity forms google recaptcha with WPML function brain1981_replace_google_recaptcha_script() { wp_deregister_script( 'gform_recaptcha' ); if(wp_script_is('gform_recaptcha')){ wp_deregister_script( 'gform_recaptcha' ); if(defined('ICL_LANGUAGE_CODE')) $hl = ICL_LANGUAGE_CODE; else $hl="en"; wp_enqueue_script( 'gform_recaptcha', 'https://www.recaptcha.net/recaptcha/api.js?hl='.$hl.'&render=explicit', array(), false, true ); } } add_action( 'wp_footer', 'brain1981_replace_google_recaptcha_script', 5 ); add_action( 'gform_preview_footer', 'brain1981_replace_google_recaptcha_script'); |
真心希望这些备用域名能够生存的久一些吧。
本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.brain1981.com/2176.html。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
本站记录了近几年的工作中遇到的一些技术问题和解决过程,“作品集”还收录了本人的大部分作品展示。除了本博客外,我们的工作室网站 – JennyStudio,内有更多作品回顾和展示。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。