- 상태
- 해결됨
- 보고된 제품
- WPML Multilingual & Multicurrency for WooCommerce 5.1.2
- 해결된 버전
- WCML 5.2.0
- 주제 태그
- Bug
문제 개요
고객사가 WooCommerce 옵션 상품이 포함된 주문을 보조 언어로 하는 경우, 원본 상품 ID와 번역된 옵션 상품의 ID가 주문에 표시됩니다. 대신 원본 상품 ID만 표시되어야 합니다.
임시 해결 방법
진행하기 전에 사이트를 전체 백업하세요.
- …/wp-content/plugins/woocommerce-multilingual/inc/class-wcml-orders.php 파일을 여세요.
- 191번 줄을 찾으세요.
- 다음을:
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; }다음으로 교체하세요: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; }