如何在 WPML 中以编程方式更改用户语言?

时间:2021-07-30 02:56:54

标签: wordpress wpml

有谁知道在切换 WPML 语言时如何更改特定的用户语言?

例如步骤:

  1. 网站默认语言为英语。
  2. 管理员创建新用户(User1)后,他们登录时的默认语言是英语(EN)。
  3. 用户 1 登录。
  4. User1 使用顶部的切换栏将语言从 EN 更改为 DE。
  5. 用户 1 注销。
  6. User1 下次登录,语言为 EN。

第 6 步的预期结果:语言应为 DE。

我想以编程方式更改用户语言,因为用户无权访问其个人资料页面。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以将用户首选语言存储在数据库中,然后使用 get_user_option 获取该语言,与当前语言进行比较,如果不匹配,则重定向到他们的首选语言。例如(未经测试):

$user_lang = get_user_option( 'user_lang_pref', get_current_user_id() );

$current_lang = apply_filters( 'wpml_current_language', NULL );

if($user_lang != $current_lang) {
    // redirect to /wp-admin/index.php?lang=[USER_LANG]&admin_bar=1
}

这是 WPML 挂钩文档:wpml_current_language