Выбор варианта не остается после того, как вы вернетесь с другого URL - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть следующий php код:

<?php
    global $current_user;
    global $user_ID;
    $user_lang = get_user_meta($user_ID, 'locale', true);
    $selected_locale = get_user_meta($user_ID, 'locale', true);
    $selected_locale = $_POST['LanguageOption'];
    echo 'UserLang: '. $user_lang.'<br/>';
    echo 'Selected Locale: '. $selected_locale.'<br/>';
?>
    <div class="field" style="margin-top:-10px;">
        <div style="padding:10px;">
            <form name="setLanguage" id="setLanguage"  method="POST">
                <select name="LanguageOption" onchange="change()">
                    <option value="" <?php if(false !== stripos($selected_locale, ' ')) {echo 'selected="selected"';} ?>>Default ( English )</option>
                    <option value="en_GB" <?php if(false !== stripos($selected_locale, 'en_GB')) {echo 'selected="selected"';} ?>>English ( US )</option>
                    <option value="el_GR" <?php if(false !== stripos($selected_locale, 'el_GR')) {echo 'selected="selected"';} ?>>Greek</option>
                </select>
            </form>
    <script>
        function change(){
            document.getElementById("setLanguage").submit();
        }
    </script>
<?php
    update_user_meta( $user_ID, 'locale', $selected_locale);
    $user_lang = get_user_meta($user_ID, 'locale', true);
    $selected_locale = get_user_meta($user_ID, 'locale', true);
    echo 'UserLang: '. $user_lang.'<br/>';
    echo 'Selected Locale: '. $selected_locale.'<br/>';
?>

<?php
    echo 'UserLang: '. $user_lang.'<br/>';
    echo 'Selected Locale: '. $selected_locale.'<br/>';

    if ($user_lang == '') { echo 'Default communication language ENGLISH';
    } elseif ($user_lang == 'en_GB') { echo 'Your communication language: ENGLISH (US)';
    }
    elseif ($user_lang == 'el_GR') { echo 'Your communication language: GREEK';
    } else {echo 'Nothing Selected';}
?>

<?php /*************************************/ ?>

Все работает нормально, даже если я перезагружаю страницу и переменная locale в таблицу usermeta изменяется соответствующим образом. Проблема заключается в том, что если я go перехожу на какой-либо другой URL-адрес сайта и возвращаюсь на эту страницу, опция переходит к первому параметру «Default (Engli sh)», а также изменяет поле языкового стандарта для пользователя.

Есть ли способ, которым я могу избежать этого? Не могли бы вы опубликовать модифицированный код?

Заранее спасибо Джордж

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...