REST api returns 404 on some WordPress sites
My code:
?php
public function __construct()
{
$valid_ips = array(
'1.2.3.4',
);
// It seems the problem is here! Because it returns 404 which means the endpoint is not registered.
if (in_array($_SERVER['REMOTE_ADDR'], $valid_ips)) {
add_action('rest_api_init', array($this, 'register_my_endpoint'));
}
}
public function register_my_endpoint()
{
register_rest_route('items/v1', '/get-items', array(array(
'methods' = 'GET, POST',
'callback' = array($this, 'some_func'),
'permission_callback' = '__return_true'
)));
}
The problem is that it is working and registering the endpoint on some sites but not in the others. Am I doing something wrong here? I'm sure my IP that is requesting is correct as I have checked it with https://www.ipify.org/
. Is this possible that the $_SERVER['REMOTE_ADDR']
has some weird value in some wordpress sites? Or can this be modified with the client that has used it with something like .htaccess
and the like. By the way, I have also added IPV6 in the $valid_ips
list but no good result.
How can I fix or at least diagnose it?