Wordpress的OneNav主题用户列表登录地点报错解决方案


前几天发现我的用户注册一直都是被禁止的,所以导致根本就没有新用户注册,打开以后今天就想去看看有没有新用户注册
发现一直被报错“登录地点:错误:请前往「其他功能/其他杂项」IP归属地下载数据库!”
按照提示去查看了设置的地方,发现文件等都存在,也能读取。

经过排查发现是不是路径根本就没有读取呢,修改路径后发现问题完美解决。
解决方案如下:
修改2062-2604行代码:

    $isQQwry = $option['v4_type'] == 'qqwry';
    //$url     = 'http://freeapi.ipip.net/' . $ip;
    $data    = itbdw\Ip\IpLocation::getLocation($ip, $isQQwry);

 

修改以后的代码如下:

    $isQQwry = $option['v4_type'] == 'qqwry';
    // 新增获取WordPress配置的数据库路径
    $ipv4_path = '';
    $ipv6_path = '';
    
    if ($isQQwry) {
        $ip_qqwry_path = maybe_unserialize(get_option('ip_qqwry_path', ''));
        if (!empty($ip_qqwry_path['path'])) {
            $ipv4_path = $ip_qqwry_path['path'];
        }
    } else {
        $ip_ip2region_path = maybe_unserialize(get_option('ip_ip2region_path', ''));
        if (!empty($ip_ip2region_path['path'])) {
            $ipv4_path = $ip_ip2region_path['path'];
        }
    }
    
    $ip_v6_path = maybe_unserialize(get_option('ip_v6_path', ''));
    if (!empty($ip_v6_path['path'])) {
        $ipv6_path = $ip_v6_path['path'];
    }
    
    //$url     = 'http://freeapi.ipip.net/' . $ip;
    $data    = itbdw\Ip\IpLocation::getLocation($ip, $isQQwry, $ipv4_path, $ipv6_path);

 

问题完美解决。