用户个人资料的个人资料更新网址是特定于语言的:.../nl/profile.php
和.../en/profile.php
。当用户点击"更新个人资料"我可以将它们重定向到任何URL。但是现在我想测试当前的网址,看看那里是否有/nl/
,所以我可以让他们重定向到自己的语言。我使用下面的代码,但是' if语句的结果'总是false
。我可以看到:当我在那里输入另一个网址时,它会选择那个网址。所以代码似乎工作,只是测试失败。我有什么想法,我做错了什么?
add_action( 'profile_update', 'custom_profile_redirect', 12 );
function custom_profile_redirect() {
if(strpos("//{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}", '/nl/') === false ) {
wp_redirect( trailingslashit( home_url() . '/en' ) );
} else {
wp_redirect( trailingslashit( home_url() . '/nl' ) );
}
exit;
}
[edit:]我设法检索的变量都设置为' en'在配置文件更新之后,甚至是插件的全局变量。我现在通过在注册表单中添加LanguagePreference下拉列表来解决它。在After-Update-Redirect中,我读取了usermeta并重定向到他们自己的首选项。 必须有更好的方法来实现这一目标......