WPML
状态
已解决
报告针对
WPML Multilingual & Multicurrency for WooCommerce 4.11.6
解决于
4.12.0

问题概述

WooCommerce 为您提供了一个按价格筛选小工具,让您的用户可以轻松筛选您的产品。

目前,如果您正在使用我们的多货币功能,您会发现在次要货币中,最小值最大值显示正确,但是,该筛选功能使用的是默认语言的价格。这会导致其显示错误的结果。

临时解决方法

在继续之前,请对您的站点进行完整备份。然后:


  1. 打开您的 WooCommerce Multilingual 文件夹。

  2. 找到 /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php 文件。

  3. 转到第 620 行。

  4. 将:
    $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'] );

所有已知问题 →