Почему add_filter с перенаправлением вызывает бесконечное перенаправление l oop? - PullRequest
1 голос
/ 25 мая 2020

Я вижу, что приведенный ниже код проблематичен c, но не понимаю, почему это может привести к перенаправлению l oop?

// Перенаправить пользователя на основе Location_cook ie

add_filter( 'after_setup_theme', 'ip_redirect_on_cloudflare', 1);
function ip_redirect_on_cloudflare()
{
    $CFCountry = $_SERVER['HTTP_CF_IPCOUNTRY'];

    switch ($CFCountry){
        case "SE":
            wp_redirect( 'https://tidanapp.com/shop/sv/' );
            exit;   
    }
}

1 Ответ

1 голос
/ 25 мая 2020

Вероятно, вы ищете что-то вроде:

add_filter( 'after_setup_theme', 'ip_redirect_on_cloudflare', 1);
function ip_redirect_on_cloudflare()
{
    $current_country = ''; // get current country from your multilanguage plugin
    $CFCountry = $_SERVER['HTTP_CF_IPCOUNTRY'];

    if(strtolower($current_country) != strtolower($CFCountry)) {
      switch ($CFCountry){
        case "SE":
            wp_redirect( 'https://tidanapp.com/shop/sv/' );
            exit;   
      }
    }
}

Или, если вы не можете получить текущую страну / язык из плагина, который вы используете, вы можете проверить на основе URL-адреса (что не самый лучший вариант ):

add_filter( 'after_setup_theme', 'ip_redirect_on_cloudflare', 1);
function ip_redirect_on_cloudflare()
{
    $CFCountry = $_SERVER['HTTP_CF_IPCOUNTRY'];

    switch ($CFCountry){
      case "SE":
          if(strpos($_SERVER['REQUEST_URI'], '/sv/') === false) {
              wp_redirect( 'https://tidanapp.com/shop/sv/' );
          }
            exit;   
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...