Плагин Toolset Access позволяет создавать редакторов для определенных языков и дает им возможность проверять и публиковать переводы определенных типов контента.
Обычно, если Вы хотите назначить пользователя редактором для какого-либо языка, этот пользователь должен иметь как минимум права уровня Редактора WordPress. Toolset Access предоставляет функционал для настройки правил доступа для определенных ролей или отдельных пользователей к определенным типам контента и языкам.
Для этого рабочего процесса требуется тип учетной записи Multilingual CMS или Multilingual Agency.
Предположим, что мы создали произвольный тип записи Book, который можно переводить, и включили английский как язык по умолчанию, а немецкий — как дополнительный язык.
Наша конечная цель — система, в которой один человек может создавать книги и отправлять задания на перевод, другой — отправлять переводы на проверку, а третий пользователь отвечает за редактирование и публикацию этих переводов. Права доступа для каждого пользователя проиллюстрированы в следующей таблице:
| Пользователь | Роль | Права доступа |
|---|---|---|
| admin | Администратор | Может управлять книгами, может управлять переводами книг на всех языках, может управлять пользователями и переводчиками |
| german_editor | Подписчик | Может редактировать и публиковать переводы книг только на немецком языке |
| german_translator | Подписчик | Может отправлять переводы книг в статусе черновика только на немецком языке |
Для достижения нашей цели необходимо выполнить три основных шага. В этом руководстве мы:
- Создадим необходимых пользователей и роли
- Настроим переводчика в WPML
- Используем Toolset Access для настройки прав доступа для редактора
Пользователи и роли
Первый шаг — создать пользователей сайта. Пользователь admin получит роль Администратор и будет иметь права на создание и редактирование любых книг или переводов. Для редактора и переводчика рекомендуется назначить роль Подписчик, так как это гарантирует, что у них будут только те права доступа, которые мы назначим им в следующих разделах.

Настройка переводчика
Предположим, что мы уже включили английский и немецкий языки для нашего сайта, при этом английский является языком по умолчанию.
Для начала важно указать в настройках WPML, что переводы будут сохраняться как черновики. Для этого перейдите на страницу WPML → Настройки и прокрутите вниз до раздела Настройки переведенных документов. Там отметьте Черновик в настройке Статус документа.

Следующий шаг — назначить пользователя german_translator переводчиком с английского на немецкий. Это можно сделать на вкладке Переводчики в WPML → Панель управления переводами.

Теперь german_translator может брать задания на перевод с немецкого на английский и отправлять их в статусе черновика.
Создание редактора для переводов
На данном этапе Вы можете использовать функционал Toolset Access для создания группы прав доступа для пользователя german_editor. Эти права будут применяться к произвольному типу записи Book только для выбранных языков, в нашем случае — для немецкого.
Чтобы активировать эти права, перейдите на страницу Toolset → Access Control. На вкладке Типы записей найдите тип записи Books. Разверните произвольный тип записи Books и включите опцию Managed by Access.

Теперь Вы можете перейти к созданию новой группы прав доступа. На вкладке WPML Groups нажмите кнопку для создания прав для определенного языка.
После выбора соответствующего произвольного типа записи и языка Вы можете начать настройку прав доступа для конкретного пользователя.

Чтобы назначить пользователя редактором для языка, нажмите на значок внизу столбца для каждого типа прав. Затем введите имя пользователя в текстовом поле диалогового окна. Access автоматически дополнит имя и позволит Вам выбрать пользователя.

Как показано в примере выше, german_editor может редактировать, удалять и публиковать любой перевод на немецком языке.
Пример процесса перевода
Теперь, когда у Вас есть необходимый функционал, давайте посмотрим на систему в действии. В качестве примера рассмотрим сценарий, в котором admin создает новую книгу, отправляет задание пользователю german_translator на добавление немецкого текста и поручает пользователю german_editor проверить и опубликовать этот перевод.
Следующая таблица иллюстрирует шаги для этого сценария и описывает процесс его выполнения:
