[WordPress] WPML 多國語言外掛翻譯角色帳號權限設定

本篇文章更新時間:2020/01/07
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


如果你正在用 WPML 這款外掛來處理多國語言,且又有客製化的網站使用者,且又碰到了明明有設定好權限,但其他使用者就是有其他語系不能翻譯的問題。

很明顯感覺到,這篇就是寫給我自己筆記的... 上述條件處理起來真不是簡單的架構,一般情境使用應該不太會碰到...

首先還是紀錄一下「官方設定」說法,相對本篇產出時近期(2019)丟出來的問答。

設定使用者可以參與翻譯的作法就是到 WPML->Translation Management-> Translation Roles 裡來選取設定帳號加入翻譯群組。

不過可能是還有問題沒處理好,所以我這邊一直都無法成功開啟完整的翻譯權限,使用者帳號只有部分翻譯功能。

於是追查了程式碼,寫了下面這段 code snippet 程式碼片段來直接干預設定,解決問題!

function mxp_is_translator_filter($is_translator, $user_id, $args) {
    $user  = wp_get_current_user();
    $roles = array('role_a', 'role_b', 'role_c', 'role_d');
    foreach ($roles as $key => $role) {
        if (in_array($role, (array) $user->roles)) {
            return true;
        }
    }
    return $is_translator;
}
add_filter('wpml_override_is_translator', 'mxp_is_translator_filter', 99, 3);

直接針對使用者角色去判斷給予開通翻譯權限,其他的就照設定走。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

參與討論

1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon