Skip Navigation
May 23, 2022

Access plugin lets you create editors for specific languages and enables them to review and publish translations of specific content types.

Normally, if you want to set a user as an editor for a language, then this user has to be an administrator of the entire site. Access provides the functionality to set access rules for specific user roles or individual users on specific content types and languages.

This feature requires WPML Multilingual CMS and WPML Translation Management plugins, which are included with Multilingual CMS account type.

Let’s assume that we have created a Book custom post type, which can be translated, and we have enabled English and German as the default and an additional language respectively.

Our final goal is a system where someone can create books and send translation jobs, someone else can submit translations for review and another user is responsible for editing and publishing these translations. The permissions for each user are illustrated in the following table:

User Role Permissions
admin administrator Can manage books, can manage translations for books in all languages, can manage users & translators
german_editor Subscriber Can edit and publish translations for books only in German language
german_translator Subscriber Can submit translations for books in draft status only in German language

There are three main steps in order to achieve our goal. Through this guide, we will:

  • create the required users and roles
  • setup translator in WPML
  • configure Access for language editor

Users and Roles

The first step is to create the users of the site. The admin will have an administrator role and will have the permission to create and edit any books or translations. For the editor and the translator, it is recommended to assign the subscriber role to them, as this ensures that they will only have the permissions that we will assign to them in the following sections.

Users List
Users List

Setup Translator

Let us assume that we have already enabled English and German languages in our site, setting the former as the default one.

It is also important to set that translations will be submitted as drafts in the WPML settings. To do this, navigate to the WPML -> Settings page and scroll to the Translated documents options section. There, check Draft in the Document Status setting.

Set draft document status in WPML
Set draft document status in WPML

The next step is to set the german_translator as the translator from English to the German language. This can be done in WPML -> Translation Management -> Translation Roles.

Set user as English to German translator
Set user as English to German translator

Now, german_translator is allowed to take up German to English translation jobs and submit them in draft status. You can read more about translation management features in the official documentation.

Create Language Editor

At this point, we will use Access functionality to create a group of permissions for the german_editor user. These permissions will apply to Book custom post type only for the selected languages, which in our case is German.

To activate these permissions go to the Toolset -> Access Control page and on the Post Types tab find the Books post type. Expand the Books custom post type and enable the Managed by Access option.

Enable Access to manage Book custom post type
Enable Access to manage Book custom post type

We can now create a new group of permissions. In the WPML Groups tab, we click on the button to create permission for a specific language.

After we select the appropriate custom post type and language, we are ready to start setting up permissions for a specific user.

Creating a new group of permissions
Creating a new group of permissions

In order to set a user as a language editor, click the icon at the bottom of the column for each permission and type the username in the dialog’s text field. Access will auto-complete and let you select the user.

Giving permissions to language editor
Giving permissions to language editor

We have just enabled german_editor to edit, delete and publish any translation in German language.

Translation Process Example

Now that we have the desired functionality, we can see our system in action. Let’s assume a scenario where admin creates a new book, sends a job to german_translator to submit the German text, and finally german_editor reviews this translation and publishes it online.

The following table illustrates the steps for this scenario and describes the process to complete it.

Screenshot Step
 Create Book Administrator creates and publishes a new book.
  Administrator creates a new translation job for the book and sends it to the translator.

You can find more information about WPML Translation Management in the official documentation.

Translator receives a new entry in books list and only has the permission to add a German translation for this book.
Translator inserts the German text and submits the translation.
Editor uses the language switcher in order to check and edit the translations.
Editor checks the list of translated books and only has the permission to edit and publish German translations.
Administrator checks the list of books and has the permission to edit all entries in all languages.