- 상태
- 해결됨
- 보고된 제품
- 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 );