Panoramica del problema
Se hai un utente con un “Ruolo personalizzato”, ad esempio “Gestore negozio” basato sul ruolo “Editore”, non potrà modificare le traduzioni esistenti.
Soluzione alternativa
Questo problema è stato risolto in WPML 4.6.9. L'aggiornamento risolve il problema sul tuo sito, quindi hai bisogno di questa soluzione alternativa solo se non puoi ancora aggiornare.
1. In wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wp/classes/User.php alla riga 217, modifica il metodo – \WPML\LIB\WP\User::isEditor in:
public static function isEditor(WP_User $user = null) {
$capability = "editor";
$capability = apply_filters('wpml_editor_capability', $capability );
return self::hasCap( $capability, $user );
}2. Nel file functions.php del tema aggiungi questo codice:
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';
}
}Sostituisci la parte second_custom_role con il nome del tuo ruolo personalizzato, in questo esempio shop_manager.