Cookie值在更改后更改回先前的值

时间:2021-05-19 作者:user206592

我有这个自定义pligin,我使用它来保存用户的语言首选项。我将其存储为cookie,如下所示:

<?php
    
    add_filter( \'init\', \'aws_set_language_cookie\', 999 );
    function aws_set_language_cookie() {
        global $TRP_LANGUAGE;
        if ( isset( $TRP_LANGUAGE ) ) {
            $result = setcookie( \'language\', $TRP_LANGUAGE, time() + ( 30 * DAY_IN_SECONDS ), "/", "" , true, true );
        }
    }
    ?>
现在如果你看看网站https://ugrandchurch.com/ 切换到西班牙语后,在inspect元素中打开Cookie。您将看到一个名为“的cookie”;“语言”;创建的,其价值为;“es\\u es”;已保存,但更改为;en\\u en“;3秒钟后。

如何确保西班牙语的价值;“es\\u es”;保留,而不是被;en\\u en";。

这里使用的WordPress语言插件名为TranslatePress

1 个回复
SO网友:Kenny Hall

我在您的网站上没有看到这种情况,但我认为您可能可以删除setcookie()前面的变量声明。在这段代码中,我没有看到任何地方使用了调用的结果。这让我想知道是否因为没有使用变量而设置了该值。

<?php
    
    add_filter( \'init\', \'aws_set_language_cookie\', 999 );
    function aws_set_language_cookie() {
        global $TRP_LANGUAGE;
        if ( isset( $TRP_LANGUAGE ) ) {
            setcookie( \'language\', $TRP_LANGUAGE, time() + ( 30 * DAY_IN_SECONDS ), "/", "" , true, true );
        }
    }
    ?>
我希望这有帮助,如果没有帮助,很抱歉:)