- Статус
- Решено
- Заявлено для
- 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.