WHMCS使用教程:在用户注册或登录的时候,根据客户的IP地址来自动填充客户资料
85 人阅读 | 时间:2023年07月19日 21:24
阿里云服务器 | 腾讯云服务器 | VPS2EZ:老牌低调VPS | ZJI:香港日本美国独服 |
LOCVPS服务周到 | HostKvm低调KVM VPS | 傲游主机:优质VPS | 80VPS:老牌VPS主机 |
搬瓦工:CN2 GIA线路 | CloudCone:性价比高 | JustMySocks科学上网 | RackNerd:超级便宜 |
JustMySocks科学上网 | 好用的宝塔面板 | 购买搬瓦工VPS | 恒创:香港CN2服务器 |
WHMCS Hook
这是一个很简单的 Hook,用于完善你的 WHMCS 功能。
注意:您可以随意修改并二次发布我们的代码。
所用到的开源项目:https://github.com/zoujingli/ip2regiON
此功能可以在用户注册或登录的时候,自动根据用户的 IP 的地址来填充客户的地址字段。
此功能是完全离线的,所以数据比较少,但是也避免了网络 API 请求。
当然你也可以对接其他 API,这样甚至能精确到街道和邮政编码。
WHMCS HOOK
在此之前,您需要先引入 Ip2Region 类。
use WHMCS\Authentication\CurrentUser; function updateClientInfo() { $ip = $_SERVER['REMOTE_ADDR']; $ip2region = new Ip2Region(); $geo = $ip2region->memorySearch($ip); $arr = explode('|', str_replace(['0|'], '|', isset($geo['region']) ? $geo['region'] : '')); $country = $arr[0]; $province = $arr[2]; $city = $arr[3]; $isp = $arr[4]; // 释放资源 unset($ip2region); $currentUser = new CurrentUser(); $selectedClient = $currentUser->client(); if (!is_null($selectedClient)) { if ($selectedClient->state == '') { $selectedClient->state = $province; } if ($selectedClient->city == '') { $selectedClient->city = $city; } $selectedClient->save(); } return [ 'country' => $country, 'province' => $province, 'city' => $city, 'isp' => $isp, ]; }
随后,我们需要用到这两个 Hook,分别是 ClientAreaRegister 和 UserLogin。这意味着,代码将会在用户注册时和登录时执行,分别获取用户的 IP 地址并完成资料更新。
// 添加 Hook add_hook('ClientAreaRegister', 1, 'updateClientInfo'); add_hook('UserLogin', 1, 'updateClientInfo');
应用此代码
VPS全科网【http://vpsqk.com】提示:您可以随意修改并二次发布我们的代码。
评论专区