CommentToMail这个插件想必大家都不陌生,这是一个评论邮件提醒的一个插件,但是他自带的功能可能无法满足某些人,这里就教大家如何在CommentToMail中显示访客的大致位置。
本次示范的版本是2.0.0,其他版本操作方式大同小异。
大致效果如下
开始教程
1.首先,你需要安装CommentToMail插件。这里不做赘述,百度安装即可。
2.解压安装完之后,在文件夹下找到Action.php文件,在130行左右会看到如下代码
$search = array(
'{siteTitle}',
'{title}',
'{author}',
'{ip}',
'{mail}',
'{permalink}',
'{manage}',
'{text}',
'{time}',
'{status}',
);
$replace = array(
$this->_email->siteTitle,
$this->_email->title,
$this->_email->author,
$this->_email->ip,
$this->_email->mail,
$this->_email->permalink,
$this->_email->manage,
$this->_email->text,
$time,
$status[$this->_email->status],
);
有PHP基础的应该不难看出这是一个和“变量”有关的代码。那么,现在,我们就在这个代码进行一些修改
3.首先,我们需要获取到访问者的IP,这里可以看到,插件已经原生配了获取IP的参数名。我们直接使用代码$this->_email->ip
。
4.我们还需要准备一个IP查询的接口,这个接口必须要稳定,且服务器在获取的时候不能有太大的延迟,这里可以自己做一个纯真IP数据库,这个是免费的。如果不想给服务器添加太大的负担,可以直接用我的API(建议欧洲机器用,延迟低。如果需要亚洲或者美国的API,请私聊QQ 7555 ^ 0 ^ 9796)https://api.imo6.cn/ip/api.php
(需要自定义参数到https://api.imo6.cn/ip/ )百度也有很多的APi,只要能返回纯文本格式的APi就OK。
5.APi准备好之后,就是一些简单的PHP代码
//先把IP存到变量中
$ip111=$this->_email->ip;
//简单合并数据
$moapi = "https://api.imo6.cn/ip/api.php?ip=$ip111";
//将查询得到的数据
$iploc = file_get_contents($moapi);
将这些代码添加到**步骤2**所显示的代码之前
6.将查询到的数据赋值给变量,这里直接在刚刚的代码之后添加一个新的变量,然后在底下直接写刚刚的$iploc 的数据即可
7.在邮件回复的HTML代码你喜欢的位置添加 {iploc}即可
实际效果如下
PS:本教程可能出现语言不严谨,专用名词使用错误等问题。本人没有系统的学习过PHP和HTML。请各位大佬轻喷