問題の概要
「カスタムロール」(例えば「編集者」ロールに基づく「ショップマネージャー」など)を持つユーザーがいる場合、既存の翻訳を編集できません。
回避策
この問題はWPML 4.6.9で修正されました。 更新するとサイト上の問題は解決するため、この回避策が必要になるのは、まだ更新できない場合のみです。
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)に変更します。