- 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.
- Ouvrez le fichier …/wp-content/plugins/woocommerce-multilingual/inc/class-wcml-orders.php.
- Cherchez la ligne 191.
- 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; }