- ステータス
- 解決済み
- 報告対象
- 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)に変更します。