Skip Navigation

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 du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.

Aucun de nos assistants n'est disponible aujourd'hui sur le forum French. Veuillez créer un ticket, et nous nous le traiterons dès notre prochaine connexion. Merci de votre compréhension.

This topic contains 13 réponses, has 3 participants.

Last updated by Michael Il y a 2 mois et 1 semaine.

Assigned support staff: Max.

Auteur Messages
février 2, 2021 à 1:10 #7987633

Michael

Bonjour,

J'ai deux formulaires sur cette page, réalisés avec Gravity Forms : hidden link

Ces formulaires sont traduits en anglais avec Gravity Forms Multilingual. Dans WPML / Gestion de traduction + filtre Gravity Form, on peut voir que mes traductions sont ok : hidden link

Ces formulaires ont une particularité : on demande à l'utilisateur de choisir le foyer / le destinataire du message en début de formulaire : hidden link

Ce formulaire marche très bien en français. Mais cette semaine le client m'informe qu'il ne marche pas du tout en anglais.

Je suppose que c'est parce que les conditions logiques ne peuvent être ajoutées dans leur traduction dans ce panneau.

Pourriez-vous svp m'indiquer comment faire pour que mes formulaires fonctionnent en anglais comme en français ?

A noter que j'ai trouvé le topic suivant de 2016, mais que le screenshot ne correspond pas à ce que j'ai (je ne vois pas la case à décocher) : https://wpml.org/fr/forums/topic/les-conditions-logiques-ne-sont-pas-prises-en-compte/

Merci pour votre retour.

février 3, 2021 à 6:48 #7992785

Andrés
Supporter

Languages: Anglais (English ) Espagnol (Español ) Français (Français )

Timezone: Europe/Paris (GMT+02:00)

Bonjour,

Bienvenue à l'assistance technique de WPML.

Il peut s'agir que votre situation a été déjà identifié. Dans votre site de test :
- Faites une sauvegarde complète de votre site.
- Modifier le fichier /gravityforms-multilingual/classes/class-gfml-conditional-logic.php.
- Remplacez la fonction :

	public function translate_conditional_logic( $form, $st_context ) {
		foreach ( $form['fields'] as $id => &$field ) {

			if ( $field->conditionalLogic && $field->conditionalLogic['rules'] ) {

				foreach ( $field->conditionalLogic['rules'] as &$rule ) {

					$rule_field = $this->get_field_from_rule( $form, $rule );

					if ( isset( $rule_field->choices ) && is_array( $rule_field->choices ) ) {
						$translations  = $this->get_multi_input_translations( $rule_field, $st_context );
						$rule['value'] = $translations[ $rule['value'] ];
					}
				}
			}
		}

		return $form;
	}

Par :

	public function translate_conditional_logic( $form, $st_context ) {
		foreach ( $form['fields'] as $id => &$field ) {

			if ( $field->conditionalLogic && $field->conditionalLogic['rules'] ) {

				foreach ( $field->conditionalLogic['rules'] as &$rule ) {

					$rule_field = $this->get_field_from_rule( $form, $rule );

					if ( isset( $rule_field->choices ) && is_array( $rule_field->choices ) ) {
						$translations  = $this->get_multi_input_translations( $rule_field, $st_context );
						$rule['value'] = $translations[ $rule['value'] ];
					}
				}
			}
		}
		
		foreach ( $form['notifications'] as $id => &$notification ) {
			
			if ( $notification['conditionalLogic'] && $notification['conditionalLogic']['rules'] ) {

				foreach ( $notification['conditionalLogic']['rules'] as &$notification_rule ) {

					$rule_field = $this->get_field_from_rule( $form, $notification_rule );
					
					if ( isset( $rule_field->choices ) && is_array( $rule_field->choices ) ) {
						$translations  = $this->get_multi_input_translations( $rule_field, $st_context );
						$notification_rule['value'] = $translations[ $notification_rule['value'] ];
					}
				}
			}
		}
		
		return $form;
	}

Est-ce que cela résout votre problème ?

Cordialement,
Andrés

février 4, 2021 à 1:45 #8007319

Michael

Bonjour Andrés,

J'ai bien appliqué le code mais mon client ne reçoit toujours pas le mail en question.

Cordialement,
Michael

février 4, 2021 à 6:24 #8010089

Andrés
Supporter

Languages: Anglais (English ) Espagnol (Español ) Français (Français )

Timezone: Europe/Paris (GMT+02:00)

Merci Michael. Dans ce cas, il peut s'agir d'une situation différent.

Pour pouvoir diagnostiquer cette issue sans impacter votre site en ligne, et éventuellement pour solliciter notre équipe de compatibilité, j'ai créé un serveur de test, la majorité des extensions nécessaires sont déjà installées. Veuillez utiliser le lien suivant pour vous connecter.
hidden link

Une fois vous êtes sur le Bureau du site, installez uniquement votre extension Gravity Form et essayez de reproduire cette situation. Si l'erreur est reproduite, j'escaladerais le ticket à notre équipe de compatibilité.

Note: vous n'avez qu'installer l'extension nécessaire pour reproduire votre problématique. N'installez pas une copie de votre site.

Cordialement

février 4, 2021 à 9:37 #8011209

Michael

J'ai installé Gravity, j'ai importé mon formulaire mais pour le reste (l'import WPML) je suis un peu perdu... Il me faudrait importer mes chaînes WPML également je suppose ? Y a t-il une manière simple de le faire ?

février 5, 2021 à 6:19 #8013099

Andrés
Supporter

Languages: Anglais (English ) Espagnol (Español ) Français (Français )

Timezone: Europe/Paris (GMT+02:00)

Bonjour,

Dans ce moment, il ne faudrait que traduire le formulaire en suivant se tutoriel:
https://wpml.org/documentation/related-projects/gravity-forms-multilingual/

Est-ce que vous voyez le même problème s’envoie d’mails ?

Cordialement

février 8, 2021 à 9:57 #8029921

Michael

Andrés,

J'ai essayé de reproduire la situation sur votre site de test. Le formulaire s'affiche dans les deux langues (anglais partiellement traduit, il me faudrait au moins une journée pour tout répliquer).

J'ai envoyé un email de test. Je ne sais pas si c'est dû au mail d'expédition (qui n'est pas le même que le nom de domaine), mais je n'ai reçu ni le mail en français, ni le mail en anglais.

février 8, 2021 à 4:24 #8034563

Andrés
Supporter

Languages: Anglais (English ) Espagnol (Español ) Français (Français )

Timezone: Europe/Paris (GMT+02:00)

Merci encore pour votre aide, Michael.

Je vous rappelle que ce n'est pas nécessaire de faire une copie exacte tu formulaire, juste un ou deux champs qui nous permettent de reproduire votre problème.

Or, je viens d'installer l'extension Post SMTP Mailer/Email Log dans le cas où vous aviez des problèmes pour récupérer vos emails.

Cordialement

février 17, 2021 à 10:06 #8111667

Michael

Andrés,

On me demande d'activer une clé d'API payante sur votre extension Post SMTP. Je ne sais pas comment passer autrement l'assistant de configuration, et sans ça votre site internet de test ne m'envoie toujours rien. hidden link

Je dois vous avouer que je suis un peu déçu par le traitement de ce topic. J'ai le souvenir de demandes de support très efficaces, où vous veniez regarder sur le site quand vous n'aviez pas la réponse de suite.

Aujourd'hui j'ai l'impression de devoir être un expert WordPress pour obtenir une réponse à ma question (vous me demandez des choses qui n'ont rien à voir avec WPML, comme savoir utiliser un site en preprod, savoir utiliser une extension SMTP ...). Quand on ne fait pas ces choses habituellement, cela demande beaucoup de temps.

Cette mésaventure devrait m'incciter à l'avenir à faire des choses moins poussées avec WPML, pour éviter ce genre de cas où mon client reste plusieurs semaines avec un formulaire qui ne marche pas ...

Cela étant dit, si vous avez une solution pour cette question de SMTP, je suis preneur.

Edit : j'ai modifié les infos et renseigné un SMTP Google, une heure après je n'ai toujours rien reçu.

Cordialement,
Michael

février 24, 2021 à 1:23 #8163757

Max
Supporter

Languages: Anglais (English ) Français (Français ) Russe (Русский ) Portugais - du Brésil (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Bonjour,

Andrés n'est pas disponible pour le moment, je vous assisterai.

Je viens d'entrer sur le site de test, de remplir le formulaire, de regarder le journal des e-mails et je vois qu'une tentative de notification par e-mail est en cours (mail-log.jpg).

Cela signifie qu'une tentative est faite pour envoyer un courriel à l'adresse fournie dans le formulaire en anglais. Il n'arrive pas dans votre boîte aux lettres électronique parce que le serveur de messagerie n'est pas correctement configuré sur le site te test, mais nous pouvons supposer qu'il fonctionnera en production avec un serveur de messagerie correctement configuré.

Il semble que tout marche du côté WPML.

S'il vous plaît, faites-moi savoir si j'ai mal compris quelque chose.

mail-log.jpg
form.jpg
février 24, 2021 à 9:12 #8167583

Michael

Bonjour,

Quand un formulaire est rempli, il y a trois notifications qui s'enclenchent. Il y a donc trois mails qui doivent partir. hidden link

Les notifications 2 et 3 fonctionnent correctement, en français et en anglais. Elles correspondent aux mails renseignés sur votre copie écran form.jpg. Vous me dîtes que ces mails partent et c'est vrai. Ils partent aussi sur mon site.

La notification 1 utilise une condition logique. Le destinataire du mail dépend de l'établissement choisi au sein du formulaire. hidden link

C'est ici que se situe mon problème. Cette notification 1 fonctionne en français mais ne fonctionne pas en anglais.

En français on a la condition suivante : Choisir un foyer / is / Foyer de Naples

En anglais le champ "Foyer de Naples" est remplacé par "Naples residence", et je pense (mais je ne suis pas sûr) que c'est ce qui provoque le bug. En tous cas le gestionnaire de site reçoit les mails en français, mais pas en anglais.

février 25, 2021 à 2:43 #8173497

Max
Supporter

Languages: Anglais (English ) Français (Français ) Russe (Русский ) Portugais - du Brésil (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Bonjour,

Merci beaucoup pour ces précisions! J'ai envoyé cette question à notre équipe de développement de soutien de deuxième niveau. Je vous répondrai ici dès que j'aurai des nouvelles.

mars 4, 2021 à 2:30 #8228933

Max
Supporter

Languages: Anglais (English ) Français (Français ) Russe (Русский ) Portugais - du Brésil (Português )

Timezone: America/Sao_Paulo (GMT-03:00)

Bonjour,

On a trouvé une solution temporaire.

1. Allez dans Forms > Séjour long > Edit
2. Ouvrez le champ "Choisi un foyer" et cliquez sur "show values" (valeurs-dans-formulaire.jpg), vérifiez ces valeurs.
3. Envoyez le formulaire pour la traduction dans WPML > Translation Management.
4. Dans l'éditeur de traduction, collez les valeurs de l'étape 2 dans les traductions anglaises: ils doivent rester les mêmes pour les deux langues (traduction-des-valeurs.jpg).
5. Sauvegardez la traduction.

Je l'ai testé sur un site de développement et ça a fonctionné.

valeurs-dans-formulaire.jpg
traduction-des-valeurs.jpg
mars 5, 2021 à 12:25 #8236521

Michael

Cela semble fonctionner aussi de mon côté, le gestionnaire de site reçoit désormais les messages. Merci beaucoup.