WPML
Stato
Aperto
Tag dell’argomento
Bug

Panoramica del problema

Nella scheda Traduttori della pagina in WPML > Gestione traduzioni c’è un’opzione per aggiungere un manager delle traduzioni che apre una casella di ricerca. In alcuni casi, la ricerca di utenti validi non restituisce alcun utente da poter selezionare.

Questo accade quando ci sono più ruoli con il permesso minimo richiesto, come avverrebbe ad esempio in un sito WooCommerce, dove sia il ruolo di Shop Manager che quello di Editor del core dispongono del permesso richiesto.

Soluzione alternativa

Non esiste una soluzione alternativa semplice che non implichi la modifica di un file del plugin WPML.

Puoi modificare il file plugins/sitepress-multilingual-cms/classes/user/class-wpml-translation-roles-records.php.

Individua questa riga (intorno alla riga 144):

$preparedUserQuery .= $this->wpdb->prepare( " AND c.meta_value LIKE %s", "%{$required_wp_role}%" );

e cambia AND in OR in questo modo:

$preparedUserQuery .= $this->wpdb->prepare( " OR c.meta_value LIKE %s", "%{$required_wp_role}%" );

Quindi individua questa riga (intorno alla riga 168):

$users      = $this->wpdb->get_col( $preparedUserQuery );

e aggiungi una seconda riga subito dopo, in questo modo:

$users      = $this->wpdb->get_col( $preparedUserQuery );
$users = array_unique( $users );

Come sempre quando si apportano modifiche di questo tipo, assicurati di avere un backup recente prima di procedere.

Tutti i problemi noti →