Ce sujet est résolu. Voici une description du problème et de la solution.
Problème: Si vous développez un site marchand et utilisez le plugin WooThumbs for WooCommerce by Iconic, vous pourriez rencontrer un problème où le champ 'Media URL' n'est plus renseigné après la traduction de la fiche produit. Ce problème survient principalement avec les fichiers médias qui étaient présents avant l'activation de WPML. Solution: Nous vous recommandons d'essayer la requête SQL suivante pour insérer les métadonnées manquantes pour les traductions. Cela concerne les métadonnées '_iconic_woothumbs_media' et '_iconic_woothumbs_media_aspect_ratio'.
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)<br />SELECT<br /> pairs.translated_post_id,<br /> '_iconic_woothumbs_media',<br /> original_meta.meta_value<br />FROM (<br /> SELECT<br /> original_tr.element_id AS original_post_id,<br /> translated_tr.element_id AS translated_post_id<br /> FROM wp_icl_translations original_tr<br /> JOIN wp_icl_translations translated_tr<br /> ON original_tr.trid = translated_tr.trid<br /> AND original_tr.element_id != translated_tr.element_id<br /> WHERE<br /> original_tr.element_type = 'post_attachment'<br /> AND translated_tr.element_type = 'post_attachment'<br />) AS pairs<br />JOIN wp_postmeta original_meta<br /> ON pairs.original_post_id = original_meta.post_id<br /> AND original_meta.meta_key = '_iconic_woothumbs_media'<br />LEFT JOIN wp_postmeta translated_meta<br /> ON pairs.translated_post_id = translated_meta.post_id<br /> AND translated_meta.meta_key = '_iconic_woothumbs_media'<br />WHERE translated_meta.post_id IS NULL;
Si cette solution ne résout pas votre problème ou semble dépassée, nous vous recommandons de vérifier les problèmes connus et de confirmer que vous avez installé les dernières versions des thèmes et plugins. Si le problème persiste, n'hésitez pas à ouvrir un nouveau ticket de support sur notre forum d'assistance.
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.
Contexte de la question:
Nous développons un site marchand pour un de nos client. Nous utilisons le plugin WooThumbs for WooCommerce by Iconic pour intégrer un lien media particulier sur une image. Quand nous traduisons la fiche produit, le medias est bien dupliqué.
Symptômes:
Le champs 'Media URL' n'est plus renseigné après la traduction de la fiche produit.
Questions:
Comment résoudre le problème du champ 'Media URL' qui n'est plus renseigné après la traduction de la fiche produit?
Les langues: Anglais (English )Allemand (Deutsch )Français (Français )
Fuseau horaire: Europe/Zagreb (GMT+01:00)
Pouvez-vous essayer les étapes suivantes :
1. **Installer WooThumbs for WooCommerce** sur le site : [lien caché).
2. **Télécharger une image avec les données WooThumbs** de la même manière que vous le faites sur votre site.
3. **Vérifier si le problème persiste** sur le site sandbox.
Si le problème se produit, veuillez décrire les étapes que vous utilisez pour télécharger des images afin que nous puissions déterminer s'il est possible de synchroniser cela automatiquement.
Les langues: Anglais (English )Allemand (Deutsch )Français (Français )
Fuseau horaire: Europe/Zagreb (GMT+01:00)
C'est exact, si les images ont été téléchargées avant que WPML ne soit actif, il n'y aurait pas de fonctionnalité WPML pour copier cette méta et cela ne fonctionne pas rétroactivement.
Il y a quelque chose que vous pouvez essayer mais c'est en dehors de la portée du support et vous pouvez vérifier avec notre https://wpml.org/contractors/ pour vous aider.
-- Insérer _iconic_woothumbs_media s'il existe pour l'image originale mais pas pour la traduction
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT
pairs.translated_post_id,
'_iconic_woothumbs_media',
original_meta.meta_value
FROM (
SELECT
original_tr.element_id AS original_post_id,
translated_tr.element_id AS translated_post_id
FROM wp_icl_translations original_tr
JOIN wp_icl_translations translated_tr
ON original_tr.trid = translated_tr.trid
AND original_tr.element_id != translated_tr.element_id
WHERE
original_tr.element_type = 'post_attachment'
AND translated_tr.element_type = 'post_attachment'
) AS pairs
JOIN wp_postmeta original_meta
ON pairs.original_post_id = original_meta.post_id
AND original_meta.meta_key = '_iconic_woothumbs_media'
LEFT JOIN wp_postmeta translated_meta
ON pairs.translated_post_id = translated_meta.post_id
AND translated_meta.meta_key = '_iconic_woothumbs_media'
WHERE translated_meta.post_id IS NULL;
-- Insérer _iconic_woothumbs_media_aspect_ratio s'il existe pour l'image originale mais pas pour la traduction
INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT
pairs.translated_post_id,
'_iconic_woothumbs_media_aspect_ratio',
original_meta.meta_value
FROM (
SELECT
original_tr.element_id AS original_post_id,
translated_tr.element_id AS translated_post_id
FROM wp_icl_translations original_tr
JOIN wp_icl_translations translated_tr
ON original_tr.trid = translated_tr.trid
AND original_tr.element_id != translated_tr.element_id
WHERE
original_tr.element_type = 'post_attachment'
AND translated_tr.element_type = 'post_attachment'
) AS pairs
JOIN wp_postmeta original_meta
ON pairs.original_post_id = original_meta.post_id
AND original_meta.meta_key = '_iconic_woothumbs_media_aspect_ratio'
LEFT JOIN wp_postmeta translated_meta
ON pairs.translated_post_id = translated_meta.post_id
AND translated_meta.meta_key = '_iconic_woothumbs_media_aspect_ratio'
WHERE translated_meta.post_id IS NULL;
### Explication
1. **Identifier les paires** :
- La sous-requête `pairs` identifie les paires d'attachements originaux et traduits en utilisant un auto-jointure sur `wp_icl_translations`.
2. **Insérer `_iconic_woothumbs_media` si manquant** :
- Sélectionner `original_post_id` et `translated_post_id` à partir de `pairs`.
- Joindre `wp_postmeta` pour obtenir `_iconic_woothumbs_media` pour l'original.
- Effectuer une jointure gauche avec `wp_postmeta` pour vérifier si `_iconic_woothumbs_media` existe pour la traduction.
- Si cela n'existe pas (`translated_meta.post_id IS NULL`), l'insérer dans `wp_postmeta`.
3. **Insérer `_iconic_woothumbs_media_aspect_ratio` si manquant** :
- La même logique est appliquée à `_iconic_woothumbs_media_aspect_ratio`.