首页 > 解决方案 > 从另一个 URL 返回后,选择选项不会保留

问题描述

我有以下 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 /*************************************/ ?>

即使我重新加载页面并且将语言环境变量适当地更改为 usermeta 表,一切正常。问题是,如果我转到该站点的其他 URL 并返回此页面,则该选项会转到第一个选项“默认(英语)”,并且还会更改用户的区域设置字段。

有什么办法可以避免吗?你能发布修改后的代码吗?

提前谢谢你乔治

标签: phpwordpresspostselect

解决方案


推荐阅读