WPML
Statut
Résolu
Signalé pour
WPML Multilingual & Multicurrency for WooCommerce 5.1.2
Résolu dans
WCML 5.2.0
Étiquettes de sujet
Bug

Aperçu de l’anomalie

Si un client passe une commande contenant un produit variable WooCommerce dans une langue secondaire, l’ID du produit d’origine et l’ID du produit variable traduit s’affichent sur la commande. Au lieu de cela, seuls les ID des produits d’origine devraient s’afficher.

Solution de contournement

Veuillez faire une sauvegarde complète de votre site avant de continuer.


  1. Ouvrez le fichier …/wp-content/plugins/woocommerce-multilingual/inc/class-wcml-orders.php.

  2. Cherchez la ligne 191.

  3. Remplacez :
    	private function adjust_product_item_if_translated( $item, $language_to_filter ) {
    
    		$product_id            = $item->get_product_id();
    		$translated_product_id = apply_filters( 'translate_object_id', $product_id, 'product', true, $language_to_filter );
    		if ( $product_id && $product_id !== $translated_product_id ) {
    			$item->set_product_id( $translated_product_id );
    			$item->set_name( get_post( $translated_product_id )->post_title );
    			return true;
    		}
    
    		return false;
    	}
    par :
    	private function adjust_product_item_if_translated( $item, $language_to_filter ) {
    
    		$product_id            = $item->get_product_id();
    		$translated_product_id = apply_filters( 'translate_object_id', $product_id, 'product', true, $language_to_filter );
            $variation_id           = $item->get_variation_id();
            $translated_variation_id = apply_filters( 'translate_object_id', $variation_id, 'product_variation', true, $language_to_filter );
    		if ( $product_id && $product_id !== $translated_product_id ) {
    			$item->set_product_id( $translated_product_id );
    			$item->set_name( get_post( $translated_product_id )->post_title );
    			//return true;
    		}
            if ( $variation_id && $variation_id !== $translated_variation_id ) {
                $item->set_variation_id( $translated_variation_id );
                $item->set_name( get_post( $translated_variation_id )->post_title );
                //	return true;
            }
    
    		return true;
    	}

Toutes les anomalies connues →