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

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

عند استخدام ميزة تعدد العملات الخاصة بإضافة WPML متعدد اللغات وتعدد العملات لـ WooCommerce، تعرض ودجت تصفية حسب السعر نطاق سعر غير دقيق للعملات الثانوية. فهي تعرض دائماً نطاق العملة الافتراضية.

حل بديل مؤقت

يُرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.


  • أضف المقتطف التالي في ملف functions.php الخاص بقالبك:
    use function WCML\functions\getClientCurrency;
    use function WPML\Container\make;
    
    add_filter( 'rest_request_after_callbacks', function( $response, $handler, $request ) {
    
    	if (
    		wcml_is_multi_currency_on()
    		&& 'GET' === $request->get_method()
    		&& 'products/collection-data' === substr( $request->get_route(), -24 )
    		&& ! empty( $request['calculate_price_range'] )
    	) {
    		$mc = make( \WCML_Multi_Currency::class );
    		$from_currency = $mc->get_default_currency();
    		$to_currency = getClientCurrency();
    		$data = $response->get_data();
    		$data['price_range']->min_price = $mc->prices->convert_price_amount( $mc->prices->unconvert_price_amount( $data['price_range']->min_price, $from_currency ), $to_currency );
    		$data['price_range']->max_price = $mc->prices->convert_price_amount( $mc->prices->unconvert_price_amount( $data['price_range']->max_price, $from_currency ), $to_currency );
    		$response->set_data( $data );
    	}
    
    	return $response;
    }, 10, 3 );

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