WPML
סטטוס
נפתר
סוג
באג
דווח עבור
WPML Multilingual & Multicurrency for WooCommerce 5.1.2
נפתר ב־
WCML 5.2.0
תוסף/ערכת עיצוב קשורים
WooCommerce
תגיות נושא
Bug

סקירת התקלה

בעת שימוש בתכונת ריבוי המטבעות של WPML Multilingual & Multicurrency for 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 );

כל התקלות הידועות