- Estado
- Resuelto
- Notificado para
- WPML Multilingual & Multicurrency for WooCommerce 5.1.2
- Resuelto en
- WCML 5.2.0
- Etiquetas de temática
- Bug
Resumen del problema
Si un cliente realiza un pedido en un idioma secundario que contiene un producto variable de WooCommerce, el ID del producto original y el ID del producto variable traducido se muestran en el pedido. En su lugar, solo deberían mostrarse los ID de los productos originales.
Solución alternativa
Por favor, haga una copia de seguridad completa de su sitio antes de continuar.
- Abra el archivo …/wp-content/plugins/woocommerce-multilingual/inc/class-wcml-orders.php.
- Busque la línea 191.
- Reemplace:
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; }Por: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; }