Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.

Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe de WPML répond aux messages du forum 6 jours sur 7, 22 heures sur 24.

This thread is resolved. Here is a description of the problem and solution.

Problem: L'utilisateur rencontre des problèmes avec les menus conditionels(logged in/out) de WP Members Solution: Implémenter le patch https://wpml.org/fr/forums/topic/menu-pour-les-membres-ne-saffichent-pas/#post-4697471

This topic contains 9 réponses, has 2 participants.

Last updated by samuelD-15 il y a 1 semaine et 5 jours.

Assigned support staff: Jamal.

Auteur Messages
septembre 20, 2019 à 10:23 #4611403

samuelD-15

Bonjour,

J'utilise le plugin wp-members pour proposer un espace membre aux abonnés de mon siteweb. J'ai créé un menu secondaire différent quand un membre est connecté ou pas. Mais depuis que j'ai installé WPML sur mon site, il ne fait plus la distinction entre un membre connecté ou pas et il m'affiche toujours le menu pour les non connectés même si je le suis.

J'ai essayé la solution suivante : https://wpml.org/forums/topic/menu-for-logged-in-and-not-logged-in-users/. Cela fonctionne à moitié, je pense que c'est parce que j'ai 2 menus (main & secondaire) mais je ne sais pas comment adapter ce code dans mon cas.

Comment puis-je résoudre ce problème ?

Merci beaucoup!

septembre 20, 2019 à 4:22 #4613537

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour,

Merci d'avoir contacter l'assistance WPML. Je serais heureux de pouvoir vous aider.

La fonction wp_get_nav_menu_object peut prendre l'id, le nom ou le slug du menu. L'exemple que vous avez cité utilise le slug. Pour savoir les slugs de vos menus, il faudrait vérifier au niveau de la base de données.

Heureusement la fontion peut aussi prendre le nom du menu ou son Id. Par exmple sur la capture attachée, l'id de mon menu est 27. Disant, que je voudrais afficher celui là pour les utilisateurs connectés, et le 53 pour les utilisateurs non connectés.
Le code utilisé sera donc:

function display_correct_menu($args = '') {
       if ( !is_user_logged_in() ) { $args['menu'] = wp_get_nav_menu_object( 53 ); }
     else { $args['menu'] = wp_get_nav_menu_object( 27 ); }
         return $args;
}
add_filter( 'wp_nav_menu_args', 'display_correct_menu' );

Si vous avez des doutes, je vous prie de m'accorder un accès temporaire sur votre site pour vérifier les id des menus.
Je reste à votre disposition.

Cordialement,
Jamal
Assistance WPML

septembre 23, 2019 à 9:35 #4621965

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour Samuel,

Merci pour les données d'accès pour votre site. D'apèrs ma première analyse, je ne pense pas que vous aurez besoin d'un bout de code pour vous permettre d'avoir des menus différents pour les utilisateurs connectés et non connectés. L'extension WP Members semble gérer cela d'office. Voir leur article.
hidden link

Si selon vous ce fonctionnement ne fonctionnent pas avec le thème Divi, je vous prie de vous connecter sur notre serveur de test avec le lien ci-dessous.
One-Click Login: hidden link

Veuillez configurer WPML à l'instar de votre site(langues primaire et secondaires), charger l'extension WP Members, et le thème Divi, créer des menus pour reprodure ce problème. Si reproduit, j'escaladerais le ticket à notre équipe de compatibilité pour plus d'analyse et éventuellement un fix.

Cordialement,
Jamal

septembre 23, 2019 à 11:26 #4623069

samuelD-15

Bonjour Jamal,

Merci pour votre réponse.

En effet, j'utilise bien la fonctionnalité de WP-membre qui permet d'avoir des menus différents pour les membres connectés mais depuis que j'ai installé WPML ça ne fonctionne plus. Raison pour laquelle j'ai essayé d'ajouter ce bout de code mais ça ne résout le problème qu'à moitié. Avec le bout de code les menus sont bien différents, mais le bout de code ne permet que de modifier 1 menu alors que dans mon cas j'en ai 2 (un menu principal & un menu secondaire). Si vous allez sur mon site en mode connecté et puis en mode déconnecté vous devriez voir le problème. En mode connecté il n'y a pas de souci et en mode déconnecté on observe l'erreur.

Du coup j'ai essayé de reproduire le problème sur le wordpress que vous m'avez envoyé mais je n'arrive pas à y installer le thème Divi (je dois importer le fichier qui est sur mon ordinateur mais j'obtiens à chaque fois une erreur).

Comment puis-je faire ?

Merci beaucoup,
Samuel

septembre 23, 2019 à 11:48 #4623257

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour Samuel,

Veuillez utiliser les accès sFTP/SSH sur le menu Sandbox ou sur mon message privé(SEPTEMBRE 23, 2019 À 11:36). Si l'erreur est reproduite sur ce serveur, c'est surement un conflit de compatibilité entre WPML et WP Members. J'escaladerais directement le ticket à notre équipe de compatibilité pour qu'ils nous aident à corriger ce problème.

Si vous pouviez aussi fournir un moyen de contact de l'auteur du plugin, nous pourrons prendre le contacter en cas de besoin, ou pour proposer une solution.

Cordialement,
Jamal

septembre 23, 2019 à 1:03 #4624201

samuelD-15

Merci Jamal,
Je n'avais finalement pas besoin des accès sFTP.

J'ai reproduit le problème sur le wordpress que vous m'avez envoyé.
Dès que j'installe WPML, la fonctionnalité de WP member qui permet d'avoir des menus différents ne fonctionnent plus. Il ne détecte pas les menus comme défini dans les réglages (capture d'écran).

Merci pour votre aide,
Samuel

septembre 24, 2019 à 10:27 #4630647

samuelD-15

Bonjour Jamal,

Avez-vous eu l'occasion de transférer mon problème à l'équipe compatibilité ?

Est-ce que je devrai attendre une nouvelle mise à jour ou est-ce que les délais sont rapides pour la correction de l'erreur ?

Merci pour votre aide,
Samuel

septembre 24, 2019 à 11:20 #4630935

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour Samuel,

Je viens d'escalader le ticket à l'équipe de compatibilité. Vous n'auriez pas à attendre une nouvelle mise à jour, sauf biensur si la solution l'exige.

Souvent, l'équipe de compatibilité, fournit des patch à implémenter au niveau du composant(theme ou plugin) ou un code apart à intégrer dans le thème ou dans un nouveau plugin. Cela peut prendre de quelques heures à quelques jours selon la compléxité du problème et de la solution.

J'espère qu'on parviendra à vous fournir une solution très rapidement. Je reviens vers vous dés qu'il y est une nouvelle.

Cordialement,
Jamal

octobre 4, 2019 à 4:34 #4697471

Jamal
Supporter

Languages: Anglais (English ) Français (Français )

Timezone: Africa/Casablanca (GMT+01:00)

Bonjour Samuel,

L'équipe de compatibilité a proposé un fix que j'ai testé avec succès sur la copie du serveur Sandbox, malheureusement le serveur a expirée. Voir la capture attachée pour les resultats que j'ai pu avoir.

La solution consiste à changer la ligne 19 du fichier wp-content/plugins/wp-members/inc/class-wp-members-menus.php avec:

add_filter( 'wp_nav_menu_args',          array( $this, 'serve_menu' ), 9 );

Veuillez l'implémenter sur votre site et vérifier si elle corrige le problème. Veuillez enlever le code des premiers suggestions.

Cordialement,
Jamal

Cordialement,
Jamal

octobre 5, 2019 à 10:53 #4700263

samuelD-15

Magnifique, ça fonctionne, merci !