Sauter la navigation

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-06:00)

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

Dernière mise à jour par Ilyes Il y a 5 jours et 6 heures.

Assisté par: Ilyes.

Auteur Articles
Avril 26, 2024 à 3:52 pm #15571402

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

Avril 29, 2024 à 3:23 pm #15577979

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-06: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,

Avril 30, 2024 à 10:29 am #15580790

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

Avril 30, 2024 à 4:39 pm #15582280

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-06: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,

mai 2, 2024 à 12:46 pm #15587281

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-06: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,