[Warten auf das Feedback der Benutzer] Automatische Vergabe der Berechtigung für alle Sprachen an alle Nutzer
Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.
Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.
Background of the issue:
Ich möchte, dass alle in WordPress registrierten Benutzer automatisch die Berechtigung erhalten, Übersetzungen für alle Sprachversionen anzulegen und einzupflegen. Dies sollte nicht manuell jedem Nutzer zugewiesen werden, sondern automatisch erfolgen. Eine Möglichkeit wäre, es an WordPress Rollen zu koppeln.
Symptoms:
Die bisherige Recherche zu möglichen Lösungsansätzen war nicht erfolgreich.
Questions:
Wie kann ich die automatische Vergabe von Berechtigungen für alle Sprachversionen an alle Nutzer in WordPress umsetzen?
Gibt es eine Möglichkeit, die Berechtigungen an WordPress Rollen zu koppeln?
Alle Rollen, die nicht auf Admin zutreffen, haben eingeschränkte Zugriffsrechte und können unter WPML > Übersetzungs-Dashboard > Übersetzer eingetragen werden, um als Übersetzer Jobs unter WPML > Übersetzungen abrufen zu können oder um als Übersetzungs-Manager Jobs zu erstellen und zuzuweisen.
Nutzer die nicht Admin sind, können die Übersetzungen nicht direkt in den Seiten- oder Beitragslisten oder vom WordPress-Editor aus abgrufen.
Um Nutzern, die nicht Admin sind, die gleichen Möglichkeiten wie einem Admin zu ermöglichen, muss die WordPress-Capability manage_options gegeben sein, aber das würde ebenfalls bedeuten, dass diese Nutzer dann Zugriff auf alle Optionen in WordPress haben.
Die programmatische Zuweisung von Rollen wäre wie folgt technisch möglich:
/* Any users apart from Admins or Subscribers will be Translation Managers. These users do not need a translator role or language pairs and will be able to access and manage WPML's Translation Management and the Translation Queue */
function wpml_custom_assign_capability() {
$users = get_users();
foreach ( $users as $user ) {
if ( ! in_array( 'subscriber', $user->roles ) && ! in_array( 'admin', $user->roles ) && !$user->has_cap('wpml_manage_translation_management')) {
$user->add_cap( 'wpml_manage_translation_management' );
}
}
}
add_action( 'init', 'wpml_custom_assign_capability' );
Ein derartiges Snippet kann man kurzzeitig in einem Code Snippet Plugin oder der functions.php eines Themes hinterlegen.
Sobald das Backend danach erneut geladen wird, sollten die Rollen angepasst werden.
Vielen Dank für die Rückmeldung. Diese Lösung hatten wir bereits getestet, die Capability wird den Benutzern dadurch auch wie gewünscht zugeordnet. Allerdings führt dies nicht dazu,dass sie Übersetzungen vornehmen dürfen.
Fehlen hier noch weitere Berechtigungen auf Sprachebene / was müssten wir zusätzlich den Benutzern noch zuordnen?
Ein Übersetzungmanager, der kein Adminkonto hat, kann unter WPML > Translation Dashboard Aufträge erstellen, welche dann unter WPML > Übersetzungen aufgerufen werden können.
Der Übersetzungsmanager kann sich diese Aufträge auch selbst zuweisen.