- Statut
- Ouvert
- Étiquettes de sujet
- Bug
Aperçu de l’anomalie
Dans l’onglet Traducteurs de la page WPML > Gestion de traduction, une option permet d’ajouter un gestionnaire de traduction, ce qui affiche un champ de recherche. Dans certains scénarios, la recherche d’utilisateurs valides ne renvoie aucun utilisateur pouvant être sélectionné.
Cela se produit lorsqu’il y a plusieurs rôles avec la permission minimale requise, comme cela se produirait sur un site WooCommerce, par exemple, où les rôles de gestionnaire de boutique et d’éditeur du noyau ont tous deux la permission requise.
Solution de contournement
Il n’existe pas de solution de contournement simple qui n’implique pas de modifier un fichier de l’extension WPML.
Vous pouvez modifier le fichier plugins/sitepress-multilingual-cms/classes/user/class-wpml-translation-roles-records.php.
Repérez cette ligne (autour de la ligne 144) :
$preparedUserQuery .= $this->wpdb->prepare( " AND c.meta_value LIKE %s", "%{$required_wp_role}%" );
et remplacez le AND par OR comme ceci :
$preparedUserQuery .= $this->wpdb->prepare( " OR c.meta_value LIKE %s", "%{$required_wp_role}%" );
Repérez ensuite cette ligne (vers la ligne 168) :
$users = $this->wpdb->get_col( $preparedUserQuery );
puis ajoutez une deuxième ligne juste après, comme ceci :
$users = $this->wpdb->get_col( $preparedUserQuery ); $users = array_unique( $users );
Comme toujours lorsque vous effectuez de telles modifications, assurez-vous de disposer d’une sauvegarde récente avant de continuer.