WPML
الحالة
محلولة
أُبلغ عنها لـ
WPML Multilingual & Multicurrency for WooCommerce 5.1.2
تم حلها في
WCML 5.2.0
وسوم الموضوع
Bug

نظرة عامة على المشكلة

إذا قدم عميل طلباً بلغة ثانوية يحتوي على منتج WooCommerce متغير، يظهر معرف المنتج الأصلي ومعرف المنتج المتغير المترجم في الطلب. بدلاً من ذلك، يجب أن يعرض فقط معرفات المنتجات الأصلية.

حل بديل مؤقت

يُرجى إنشاء نسخة احتياطية كاملة لموقعك قبل المتابعة.


  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;
    	}

جميع المشاكل المعروفة →