WPML
Статус
Решено
Заявлено для
WPML Multilingual CMS 4.6.8
Решено в
WPML 4.6.9
Теги темы
Bug

Обзор проблемы

Если у Вас есть пользователь с «Произвольной ролью», например «Менеджер магазина», основанной на роли «Редактор», он не сможет изменять существующие переводы.

Обходное решение

1. В файле wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wp/classes/User.php на строке 217 измените метод \WPML\LIB\WP\User::isEditor на:

public static function isEditor(WP_User $user = null) {
$capability = "editor";
$capability = apply_filters('wpml_editor_capability', $capability );
return self::hasCap( $capability, $user );
}

2. В файл functions.php Вашей темы оформления добавьте этот код:

add_filter('wpml_editor_capability', 'my_editor');
function my_editor(){
    $user = wp_get_current_user();
    if (in_array('second_custom_role', (array)$user->roles, true)){
        return 'second_custom_role';
    }
}

Замените часть second_custom_role на название Вашей пользовательской роли, в данном примере — shop_manager.

Все известные проблемы →