- 状态
- 已解决
- 报告针对
- WPML Multilingual & Multicurrency for WooCommerce 4.11.6
- 解决于
- 4.12.0
问题概述
WooCommerce 为您提供了一个按价格筛选小工具,让您的用户可以轻松筛选您的产品。
目前,如果您正在使用我们的多货币功能,您会发现在次要货币中,最小值和最大值显示正确,但是,该筛选功能使用的是默认语言的价格。这会导致其显示错误的结果。
临时解决方法
在继续之前,请对您的站点进行完整备份。然后:
- 打开您的 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'] );