CommentToMail这个插件想必大家都不陌生,这是一个评论邮件提醒的一个插件,但是他自带的功能可能无法满足某些人,这里就教大家如何在CommentToMail中显示访客的大致位置。

本次示范的版本是2.0.0,其他版本操作方式大同小异。

大致效果如下

QQ截图20190914114343.jpg

开始教程

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。

QQ截图20190914170519.jpg

5.APi准备好之后,就是一些简单的PHP代码

        //先把IP存到变量中
        $ip111=$this->_email->ip;
        //简单合并数据
        $moapi = "https://api.imo6.cn/ip/api.php?ip=$ip111";
        //将查询得到的数据
        $iploc = file_get_contents($moapi);

将这些代码添加到**步骤2**所显示的代码之前

QQ截图20190914164825.jpg

6.将查询到的数据赋值给变量,这里直接在刚刚的代码之后添加一个新的变量,然后在底下直接写刚刚的$iploc 的数据即可
QQ截图20190914164701.jpg

7.在邮件回复的HTML代码你喜欢的位置添加 {iploc}即可
QQ截图20190914171325.jpg

实际效果如下
QQ截图20190914114343.jpg

PS:本教程可能出现语言不严谨,专用名词使用错误等问题。本人没有系统的学习过PHP和HTML。请各位大佬轻喷