Sauter la navigation

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.

Marqué : 

Ce sujet contient 3 réponses, a 2 voix.

Dernière mise à jour par Bruno Kos Il y a 4 mois et 3 semaines.

Assisté par: Bruno Kos.

Auteur Articles
juillet 29, 2024 à 9:21 am

lionelP-8

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?

juillet 29, 2024 à 10:08 am
juillet 29, 2024 à 11:20 am #16015518

Bruno Kos
Supporter

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.

juillet 29, 2024 à 4:41 pm #16017275

lionelP-8

Bonjour,

Je viens d'uploader une image et j'ai copié le lien dans le woothumbs
J'ai ensuite été voir l'image dans une autre langue et le lien est bien là

Je suis retourné sur mon site et j'ai uploadé un nouveau fichier en mettant le lien, et visiblement le lien se répercute bien sur l'autre langue

Le problème a l'air donc de ne concerner que les fichiers déjà présents avant l'installation de WPML si je comprend bien ?

juillet 30, 2024 à 8:51 am #16019422

Bruno Kos
Supporter

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`.

would not work.jpg