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.
Sun
Mon
Tue
Wed
Thu
Fri
Sat
-
7:00 – 15:00
7:00 – 15:00
7:00 – 15:00
7:00 – 15:00
7:00 – 15:00
-
-
-
-
-
-
-
-
Fuseau horaire du supporter: Pacific/Easter (GMT-05:00)
Contexte de la question:
Nous avons créé un module pour créer automatiquement des variations de produits. Nous utilisons WC_Product_Variation() avec $variation->save(). Le module crée bien la variation dans la langue principale.
Symptômes:
Toutefois, pas les variations correspondantes pour les langues étrangères ne sont pas créées.
Questions:
Quelle est la méthode à employer pour y parvenir ?
Comment faut-il faire ?
Les langues: Anglais (English )Français (Français )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Bonjour,
Merci d'avoir contacté l'équipe d'assistance WPML,
Il semble que ce module soit un code personnalisé, ce qui pourrait être en dehors de notre support, mais je pourrais suggérer quelques trucs et astuces si nécessaire,
Par ailleurs, il n'y a aucun moyen de traduire automatiquement les taxonomies après l'ajout de contenu par un programme (Module code).
Le fait est que WPML ne met à jour la traduction qu'à partir du backend - dans ce cas, seulement si vous mettez à jour l'article ou la taxonomie lorsque l'administrateur est connecté et que le tableau de bord est ouvert, alors cela devrait fonctionner.
Cela dit, pourriez-vous partager le code du module afin d'obtenir plus d'informations à ce sujet ?
Vous avez visiblement mal compris le problème. Je vais essayer d'expliquer à nouveau.
1. Nous créons avec le code de notre module des variations de produits dans la langue principale.
2. Et c'est ensuite que vous avez visiblement mal compris : Nous souhaitons créer automatiquement avec notre code aussi les variations du produit dans les autres langues du site (DE et EN). La langue principale est FR. Le stock, le prix de vente, le SKU sont identiques pour toutes les langues. Ces données ne se traduisent pas puisqu'il s'agit de chiffres. Pourtant WPML WCML crée une variation pour chaque langue avec chacune de ces données. Cela crée d'ailleurs non seulement une redondance de données qui est contraire à toute bonne gestion de base de données, mais aussi parfois à des problème de cache.
Donc, notre question est : Quelle fonction de votre API utiliser pour créer ces variations à partir du code de programmation ? Suivant votre description, lorsque l'administrateur passe par le backoffice pour créer par la voie traditionnelle les variations, il y a bien une fonction d'API qui est exécutée pour y parvenir.
Voici l'extrait du code avec lequel nous créons la variation :
$matching_variation_id = (new WC_Product_Data_Store_CPT())->find_matching_product_variation( new WC_Product( $subArray['product_id'] ), $variation_slugs );
if ( !$matching_variation_id ) {
// Create new variation and activate ATUM stock management
$variation = new WC_Product_Variation();
$variation->set_parent_id( $subArray['product_id'] );
$variation->set_attributes( $variation_slugs );
// get the freshly created variation's ID
$matching_variation_id = $variation->save();
} else {
// Update existing variation
$variation = new WC_Product_Variation( $matching_variation_id );
Les langues: Anglais (English )Français (Français )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Bonjour,
Merci pour cette précision,
J'ai envoyé votre code et votre demande à nos développeurs pour obtenir des suggestions sur la façon dont vous pourriez réaliser cela avec votre code personnalisé,
Je vous informerai dès que j'aurai obtenu une réponse,
Les langues: Anglais (English )Français (Français )
Fuseau horaire: Pacific/Easter (GMT-05:00)
Bonjour ;
J'ai reçu une réponse de notre équipe,
Les variations de traduction ne peuvent pas être créées aussi facilement par le code.
Nous avons une logique accrochée à l'action "save_post" qui appelle à la fin :
et cela duplique les variations dans les autres langues.
C'est dans le code : \WCML_Synchronize_Product_Data::sync_product_data in wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-synchronize-product-data.php
Le sujet '[Fermé] l’utilisation de l’API de WPML WCML' est fermé aux nouvelles réponses.