 markC-68
|
Je souhaite partager avec vous une solution universelle particulièrement pour les POD ou tout autre site eCommerce qui utilise un outils de merchandising externe avant traduction.
Ainsi le panier est pleinement conforme pour le calcul de cout de transport externalisé ou autres services externes basé sur le la source des traductions.
Je vous conseil vivement d’intégrer cet élément de translation pour satisfaire tout vos potentielle client POD et rendre compatible par ce biais leurs infrastructures
Ajouté avec WPCode
// add cart packages translation filter
add_filter( 'woocommerce_cart_shipping_packages', 'bco_woocommerce_cart_shipping_packages', 5000 );
//
function bco_woocommerce_cart_shipping_packages( $packages) {
bco_write_log( __FUNCTION__);
// bco_write_log( $packages);
// extract default language
$default_lang = apply_filters('wpml_default_language', NULL );
// parse packages
foreach( $packages as $class_group=>$package) {
bco_write_log( $package);
// parse package
foreach ( $package['contents'] as $key => $item ) {
// extract cart product & variation
$product_id = $item['product_id'];
$variation_id = $item['variation_id'];
// translate cart product & variation
$product_id_new = apply_filters( 'wpml_object_id', $product_id, 'product', TRUE, $default_lang);
$variation_id_new = apply_filters( 'wpml_object_id', $variation_id, 'product', TRUE, $default_lang);
//
bco_write_log( "product_id : $product_id => $product_id_new");
bco_write_log( "variation_id : $variation_id => $variation_id_new");
// update cart product & variation
$package['contents'][$key]['product_id'] = $product_id_new;
$package['contents'][$key]['variation_id'] = $variation_id_new;
// update product
$product = wc_get_product( $product_id_new );
$package['contents'][$key]['data'] = $product;
$package['contents'][$key]['data_hash'] = wc_get_cart_item_data_hash( $product );
}
// update package
$packages[$class_group] = $package;
}
// return translated packages
return $packages;
}
NB : bco_write_log est un outils de log interne a supprimer, commenté ou remplacer
Merci de me tenir au courant de la qualité de cette solution
|
 Ilyes
Supporter
Les langues:
Anglais (English )
Français (Français )
Arabe (العربية )
Fuseau horaire:
Pacific/Easter (GMT-05:00)
|
Bonjour,
Merci d'avoir contacté l'équipe d'assistance WPML,
Merci d'avoir pris le temps de partager cette solution avec nous,
Comme je ne suis pas familier avec les POD, j'apprécierais que vous puissiez ajouter toute autre information qui pourrait m'aider, ainsi que notre équipe de compatibilité, à comprendre le problème et l'endroit où ce code est implémenté,
J'en ferai part à notre équipe et vous ferai savoir si ils ont des suggestions à faire,
Merci,
|
 markC-68
|
Les POD (Print On Demand) utilisent les produits et variation synchronisé pour valider la disponibilité, les couts de transport calculé en temps réel et le transfert automatique de commande aux unité de production.
En bref c'est un CRUD industriel.
A cet effet il faut absolument conserver en interne pour les transaction CRUD de leur API les reference originel correspondante a la langue d'origine du produit.
Votre équipe peut sans risque ajouter ce code avec une option d'activation pour les POD.
- Ou sinon par détection de POD et de leur version
Cela deviens une mise en compatibilité dynamique.
Bref faite moi confiance : Je suis Ingénieur et Professeur ...
|
 Ilyes
Supporter
Les langues:
Anglais (English )
Français (Français )
Arabe (العربية )
Fuseau horaire:
Pacific/Easter (GMT-05:00)
|
Bonjour,
Merci encore pour cette clarification,
J'ai partagé votre code avec notre équipe de compatibilité, je vous ferai savoir si nous avons besoin d'autre chose ou si j'obtiens des nouvelles,
Cordialement,
|
 Ilyes
Supporter
Les langues:
Anglais (English )
Français (Français )
Arabe (العربية )
Fuseau horaire:
Pacific/Easter (GMT-05:00)
|
Bonjour,
Merci de votre patience,
J'ai reçu une nouvelle de notre équipe, nous suggérons de traiter ce problème comme un problème de compatibilité et d'essayer de le répliquer sur nos serveurs,
Afin de voir si ce problème est dû à la configuration de votre site, ou simplement à la combinaison de PODs et WPML, nous devons isoler le problème.
J'ai créé un sandbox ici : lien caché
J'ai déjà configuré WPML en 2 langues.
Veuillez procéder comme suit :
- Ouvrez le lien Sandbox mentionné ci-dessus
- Téléchargez et activez tous les plugins que vous utilisez pour les PODs.
- Essayez de reproduire le problème (n'ajoutez pas encore la solution).
Le problème est-il reproduit ? Si c'est le cas, veuillez partager un guide étape par étape sur la façon de reproduire le problème afin que je puisse le partager avec notre équipe de compatibilité.
Veuillez noter que nous n'avons besoin que du thème/plugin et des fonctionnalités associées. Vous n'avez pas besoin de créer un site web complet ou de cloner votre site existant.
https://wpml.org/faq/how-to-reproduce-issues-and-share-them-with-wpml-support/
Tenez-moi au courant dès que c'est fait.
Merci,
|