Contact Form 7 获取提交IP 和国家地区

原创 2024-01-12 本文共1389个字,预计耗時4分钟 834次阅读
文章摘要:在Contact Form 7完全教程里介绍了从安装到使用,自定义监听表单状态到配合验证码防止垃圾邮件等功能的使用过程,配合邮件插件可以很方便的提醒。之前自定义的邮件格式,使用 [_url] 可以获取提交的表单地址,[_...

Contact Form 7 获取提交IP 和国家地区

Contact Form 7完全教程里介绍了从安装到使用,自定义监听表单状态到配合验证码防止垃圾邮件等功能的使用过程,配合邮件插件可以很方便的提醒。之前自定义的邮件格式,使用 [_url] 可以获取提交的表单地址,[_remote_ip] 可以获取提交的IP。如果需要直接显示提交的地区或者国家呢?这个是开发过程中,由业务提出的需求,有了国家可以方便分辨是否是真的客户还是故意垃圾的邮件。

Contact Form 7并没有自带获取国家的字段,需要进行自定义处理,国家地区就是根据IP去获取的,所以只要有那么一个IP库,在自定义一个国家的字段,使其可以在邮件格式那里可以使用就行。自定义功能自然需要在functions.php里,下面是自定义了[_remote_ip_area],这个名称,当然可以是其他的名称,保存前后一致就行,使用的是IP国家查询api也可以自由选择,这里用的是:

http://ip.globalso.com/?ip=

完整代码实现:

// 自定义增加邮件标签 增加IP所在地 标签
function wpcf7_special_mail_tag_new_add_ip_to_address( $output, $name, $html, $mail_tag = null ) {
	if ( ! $mail_tag instanceof WPCF7_MailTag ) {
		wpcf7_doing_it_wrong(
			sprintf( '%s()', __FUNCTION__ ),
			__( 'The fourth parameter ($mail_tag) must be an instance of the WPCF7_MailTag class.', 'contact-form-7' ),
			'5.2.2'
		);
	}
	$name = preg_replace( '/^wpcf7\./', '_', $name ); // for back-compat
	$submission = WPCF7_Submission::get_instance();
	if ( ! $submission ) {
		return $output;
	} if ( '_remote_ip_area' == $name ) {		
		if ( $remote_ip = $submission->get_meta( 'remote_ip' ) ) {
			return file_get_contents("http://ip.globalso.com/?ip=".$remote_ip);
		} else {
			return '未知';
		}
	}
	return $output;
}
add_filter( 'wpcf7_special_mail_tags', 'wpcf7_special_mail_tag_new_add_ip_to_address', 11, 4 );

这样就可以像使用[_remote_ip]一样使用[_remote_ip_area]

在设置好的邮件里,正确的就可以收到邮件类似:

本文作为Contact Form 7完整使用教程补充功能说明,如果后期发现还需要增加功能的也会分享出来,在一开始使用邮件表单的时候,体验过其他各种插件,只有Contact Form 7很干净,没有那么多设置页面和广告页面,然后就深入研究,自定义表单样式也来的容易,还有事件监听,到本文的获取国家功能,可以说这个插件满足了大部分功能的同时又很简洁,不会有过多用不着的代码被加载,减少前端页面的体量,深得我心。

版权免责申明
① 本站源码模板等资源SVIP用户永久不限量免费下载
② 所有资源来源于网络收集,如有侵权,请联系站长进行删除处理。
③ 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。
④ 如果你有源码需要出售,可以联系管理详谈。
⑤ 本站提供的源码、模板、插件等等资源,都不包含技术服务请大家谅解。
⑥ 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦ 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。
⑧ 网站资源绝不做任何二次加密或添加后门(原版加密除外)
常见问题F&Q
需要积分的资源怎么下载?
您可以注册后签到等活跃动作获得积分,积分可下载,也可充值升级等级免费下载。
源码模板等文件安全吗?有没有后门病毒吗?
站内资源标有“已测试”标签的资源源码,表示已经在本地安装测试调试过才分享出来的,可以保证一定的安全;若不放心可以自行下载模板资源后使用D盾等查杀工具扫一遍确认安全。
本站网站模板等源码提供安装服务吗?
本站资源收集于网络并分享出来共同学习,不提供免费安装服务,模板源码安装等需要有一定熟悉度,小白用户可以下载资源后雇人安装调试。