Well I still have not learned how to disable country-based blocking by manually manipulating the database.
However, I was able to get Wordfence working again by enclosing the two functions (that collide with the PHP GeoIP extension function names) inside “if (!function_exists())” blocks.
Since I had to manually edit the Wordfence code, I do not consider this issue resolved.
I had the same problem and did not find any support on Wordfence. Here is my solution that worked for me (but I am not sure if the problem will come back after a future Wordfence update)
In: plugins/wordfence/lib/wfGeoIP.php on line 432
Start on line 432 and replace this:
function geoip_country_code_by_name($gi, $name) {
$country_id = geoip_country_id_by_name($gi,$name);
if ($country_id !== false) {
return $gi->GEOIP_COUNTRY_CODES[$country_id];
}
return false;
}
function geoip_country_name_by_name($gi, $name) {
$country_id = geoip_country_id_by_name($gi,$name);
if ($country_id !== false) {
return $gi->GEOIP_COUNTRY_NAMES[$country_id];
}
return false;
}
************************With this:********************
if (!function_exists('geoip_country_code_by_name')){
function geoip_country_code_by_name($gi, $name) {
$country_id = geoip_country_id_by_name($gi,$name);
if ($country_id !== false) {
return $gi->GEOIP_COUNTRY_CODES[$country_id];
}
return false;
}
}
if (!function_exists('geoip_country_name_by_name_v6')){
function geoip_country_name_by_name_v6($gi, $name) {
$country_id = geoip_country_id_by_name_v6($gi,$name);
if ($country_id !== false) {
return $gi->GEOIP_COUNTRY_NAMES[$country_id];
}
return false;
}
}
if (!function_exists('geoip_country_name_by_name')){
function geoip_country_name_by_name($gi, $name) {
$country_id = geoip_country_id_by_name($gi,$name);
if ($country_id !== false) {
return $gi->GEOIP_COUNTRY_NAMES[$country_id];
}
return false;
}
}
It solved the problem for me.
Yes. That is exactly what I did: enclosed the offending functions within if-not-function_exists blocks. But I didn’t bother with the ‘v6’ versions of the functions.
Thanks for the code example. Hopefully it will help others until this is resolved at the source.
Terry