- الحالة
- محلولة
- أُبلغ عنها لـ
- WPML Multilingual & Multicurrency for WooCommerce 5.1.2
- تم حلها في
- WCML 5.2.0
- وسوم الموضوع
- Bug
نظرة عامة على المشكلة
إذا قدم عميل طلباً بلغة ثانوية يحتوي على منتج WooCommerce متغير، يظهر معرف المنتج الأصلي ومعرف المنتج المتغير المترجم في الطلب. بدلاً من ذلك، يجب أن يعرض فقط معرفات المنتجات الأصلية.
حل بديل مؤقت
يُرجى إنشاء نسخة احتياطية كاملة لموقعك قبل المتابعة.
- افتح الملف …/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; }