- 상태
- 해결됨
- 보고된 제품
- WPML Multilingual & Multicurrency for WooCommerce 4.11.6
- 해결된 버전
- 4.12.0
문제 개요
WooCommerce는 사용자가 제품을 쉽게 필터링할 수 있는 가격 필터 위젯을 제공합니다.
현재 다중 통화 기능을 사용 중인 경우, 보조 통화에서 min 및 max 값은 올바르게 표시되지만 필터가 기본 언어의 가격을 사용하는 것을 확인할 수 있습니다. 이로 인해 잘못된 결과가 표시됩니다.
임시 해결 방법
진행하기 전에 사이트를 전체 백업하세요. 그런 다음:
- WooCommerce Multilingual 폴더를 여세요.
- /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php 파일을 찾으세요.
- 620번째 줄로 이동하세요.
- 다음 코드를:
$args['where'] = str_replace( $wpdb->prepare( 'wc_product_meta_lookup.min_price >= %f', $min_price ), $wpdb->prepare( 'wc_product_meta_lookup.min_price >= %f', $min_price_in_default_currency ), $args['where'] ); $args['where'] = str_replace( $wpdb->prepare( 'wc_product_meta_lookup.max_price <= %f', $max_price ), $wpdb->prepare( 'wc_product_meta_lookup.max_price <= %f', $max_price_in_default_currency ), $args['where'] );
다음과 같이 변경하세요.
$args['where'] = str_replace( $wpdb->prepare( '%f<wc_product_meta_lookup.min_price', $max_price ), $wpdb->prepare( '%f<wc_product_meta_lookup.min_price', $max_price_in_default_currency ), $args['where'] ); $args['where'] = str_replace( $wpdb->prepare( '%f>wc_product_meta_lookup.max_price', $min_price ), $wpdb->prepare( '%f>wc_product_meta_lookup.max_price', $min_price_in_default_currency ), $args['where'] );