让国内用户也能在Gravity Forms中开启谷歌验证码Google reCAPTCHA功能

本站所有文章均为博主人工写作,绝无AI辅助成分,请放心参阅。

我一直认为Google reCAPTCHA是最好的表单验证插件,没有之一。
在Gravity Forms中开启谷歌验证码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 本站记录了近几年的工作中遇到的一些技术问题和解决过程,“作品集”还收录了本人的大部分作品展示。除了本博客外,我们的工作室网站 – JennyStudio,内有更多作品回顾和展示。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注