Ce sujet est résolu. Voici une description du problème et de la solution.
Problem: The client was unable to display Contact Form 7 forms in secondary languages on their website, even after attempting to manually chnage the form IDs.
Solution: We identified that the issue was due to the "ACF Field For Contact Form 7" plugin not being compatible with WPML. The form IDs were not being translated correctly (e.g., ID 5 in French and 1567 in English).
We added a filter to the plugin's code to translate the form ID using WPML's
We advised the client to test this solution and to contact the plugin author to inform them about the change and invite them to join our GoGlobal program so we can assist in making the plugin compatible. The GoGlobal program link is https://wpml.org/documentation/support/go-global-program/.
We also warned that the added line of code would be overwritten with each plugin update.
If this solution does not seem relevant, please open a new support ticket at WPML support forum.
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.
Après vérification, il semble que le mix entre les champs CF7 et ACF empêche WPML de copier le formulaire en deuxieme langue,
Afin de voir si ce problème est dû à la configuration de votre site, ou simplement à la combinaison des champs CF7 et ACF, nous devons isoler le problème.
Et votre aide nous permettra d'accélérer la recherche d'une solution, merci !
J'ai créé un sandbox ici : lien caché
J'ai déjà configuré WPML en 2 langues, installé tous les plugins dont vous avez besoin pour répliquer.
Veuillez procéder comme suit :
- Ouvrez le lien Sandbox mentionné ci-dessus
- Activez ACF PRO si possible
- Créez un formulaire de base similaire à celui que vous avez sur votre site et traduisez-le.
- Créez un groupe de champs pour les produits et la taxonomie des produits similaire à celui que vous aviez déjà sur votre site, assurez-vous de définir le champ du formulaire de contact comme Copier ou Traduire.
- Créez un produit en utilisant les champs personnalisés que vous venez de créer et assignez le formulaire dans le champ des formulaires.
- Traduire le produit
Le formulaire peut se traduire sur un autre autre site sans souci je pense.
J'ai essayé de l'ajouter sur votre sendbox mais il serait plus pertinent de trouver une solution sur le site actuel avec son environnement, je ne vois pas comment recréer cet environnement et l'ensemble des taxonomies sur un site tiers.
Est il possible de demander de l'aide à Nicolas Vallet qui a eu l'habitude de travailler sur le site directement svp ?
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Le champ "Contact From 7" provient du plugin "ACF Field For Contact Form 7" qui n'est malheureusement pas encore compatible avec WPML.
Le problème est que l'ID du form n'est pas traduite. EN FR l'ID du Formulaire est 5 alors qu'en Anglais 1567.
Alors j'ai ajouté un filtre dans le code de ce plugin mais veuillez noter que je ne suis pas développeur et encore moins l'auteur de ce plugin. Veuillez donc tester cela et surtout merci de contacter l'auteur du plugin pour lui expliquer le changement que j'ai fait et invité le à rejoindre notre programme GoGlobal. Nos développeurs se seront un plaisir de l'aider à rendre son plugin compatible. Lien: https://wpml.org/documentation/support/go-global-program/
De plus à chaque mise à jour de ce plugin, la ligne que j'ai ajouté sera écrasée.
Après ces avertissements voici ce que j'ai fait:
Dans le fichier /wp-content/plugins/acf-field-for-contact-form-7/includes/acf-fields/acf-contact-form-7-v5.php ligne 63 j'ai ajouté notre hook "wpml_object_id" pour obtenir l'ID de l'objet dans la langue actuellement visitée.
Ref: https://wpml.org/wpml-hook/wpml_object_id/
Je vais faire remonter ce code à notre équipe de compatibilité pour voir s'il est correct mais cela semble fonctionner sur votre frontend (faites tout de même des tests aussi de votre côté).
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Je viens d'avoir la confirmation que ce code devrait fonctionner correctement mais que bien sûr il est préférable que le problème soit reporté à l'auteur (avec l'invitation au programme Go Global) afin qu'il l'intègre dans son code pour les prochaines mises à jour.
Une autre solution d'appoint qui ne touche pas au code mais est plus contraignante pour vous serait celle-ci:
1. Dans functions.php ajoutez ce code qui autorise la traduction de chiffres
2. Dans ACF > Groupes de champs, changez la préférence de traduction du champ "Contact Form" à "traduire"
3. Lorsque vous traduirez la page, vous pourrez traduire la valeur du champ contact form qui est l'ID du formulaire (donc ici vous devez traduire 5 par 1567)
Cela prendra plus de temps et vous devrez connaitre l'ID du formulaire dans chaque langue pour faire la traduction.