skip to Main Content

I have a plugin installed on my WordPress website that logs 404 and redirect to similar pages. Here is the part of the plugin that does the logging is below:

function log($query){
        
    if (defined('WP_DEBUG_LOG') && WP_DEBUG_LOG) {
        ini_set( 'error_log', WP_CONTENT_DIR . '/redirect.txt' );
    }
        
    if(empty($query['settings']['log']) || !WP_DEBUG || !WP_DEBUG_LOG)
        return;
        
    $request_url = home_url() . $query['request']['url'];
    $redirect = $query['redirect']['url'];    
    $ip = $_SERVER['REMOTE_ADDR'];
        
    error_log('//' . $ip . '//' . $request_url . '//' . $redirect . '//');
        
} 

I would like to log error for only specific incoming IP, for example, I want to log error for only 111.11.111.11. Other IPs should be ignored.

How can incorporate that into the code above

2

Answers


  1. you can do like this

        $request_url = home_url() . $query['request']['url'];
        $redirect = $query['redirect']['url'];    
        $ip = $_SERVER['REMOTE_ADDR'];
        
        if ($ip == '111.11.111.11') {
             error_log('//' . $ip . '//' . $request_url . '//' . $redirect . '//');
        }
    
    Login or Signup to reply.
  2. You can define an array that contains the IP addresses to which you intend to support the logging, like:

    $logips = ['111.11.111.11'];
    

    and then check whether the IP address is inside that array:

    if (in_array($_SERVER['REMOTE_ADDR'], $logips)) {
        error_log('//' . $ip . '//' . $request_url . '//' . $redirect . '//');
    }
    

    This way you will be able to just modify the content of the array whenever new IP addresses are to be added or old IP addresses are to be removed, while the logic will remain reliable. Also, it is recommendable to make this an application setting, because that tester/developer might have other special behaviors at other parts of the application as well.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search