- 状态
- 已解决
- 报告针对
- WPML Multilingual & Multicurrency for WooCommerce 5.1.2
- 解决于
- WCML 5.2.0
- 相关插件/主题
- WooCommerce
- 主题标签
- Bug
问题概述
当使用 WPML Multilingual & Multicurrency for WooCommerce 的多货币功能时,Filter per Price 小工具针对次要货币显示的价格范围不准确。它总是显示默认货币的范围。
临时解决方法
继续操作前,请确保对您的站点进行完整备份。
- 将以下代码段添加到您主题的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 );