WPML
Stato
Risolto
Segnalato per
WPML Multilingual & Multicurrency for WooCommerce 5.1.2
Risolto in
WCML 5.2.0
Tag dell’argomento
Bug

Panoramica del problema

Se un cliente effettua un ordine in una lingua secondaria contenente un prodotto variabile WooCommerce, l’ID del prodotto originale e l’ID del prodotto variabile tradotto vengono visualizzati nell’ordine. Invece, dovrebbe visualizzare solo gli ID dei prodotti originali.

Soluzione alternativa

Fai un backup completo del tuo sito prima di procedere.


  1. Apri il file …/wp-content/plugins/woocommerce-multilingual/inc/class-wcml-orders.php.

  2. Cerca la riga 191.

  3. Sostituisci:
    	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;
    	}
    Con:
    	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;
    	}

Tutti i problemi noti →