php – ReST api returns 404 on some wordpress sites

Question

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?

0
kodfire 1 month 2021-12-05T02:29:10-05:00 0 Answers 0 views 0

Leave an answer

Browse
Browse