WPML
상태
해결됨
보고된 제품
WPML Multilingual & Multicurrency for WooCommerce 5.1.2
해결된 버전
WCML 5.2.0
주제 태그
Bug

문제 개요

고객사가 WooCommerce 옵션 상품이 포함된 주문을 보조 언어로 하는 경우, 원본 상품 ID와 번역된 옵션 상품의 ID가 주문에 표시됩니다. 대신 원본 상품 ID만 표시되어야 합니다.

임시 해결 방법

진행하기 전에 사이트를 전체 백업하세요.


  1. …/wp-content/plugins/woocommerce-multilingual/inc/class-wcml-orders.php 파일을 여세요.

  2. 191번 줄을 찾으세요.

  3. 다음을:
    	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;
    	}

알려진 모든 문제 →