- Status
- Resolvido
- Relatado para
- WPML Multilingual & Multicurrency for WooCommerce 4.11.6
- Resolvido em
- 4.12.0
Visão geral do problema
O WooCommerce oferece um widget Filtrar por preço que permite que seus usuários filtrem facilmente seus produtos.
Atualmente, se você estiver usando nosso recurso multimoeda, notará que, nas moedas secundárias, os valores mín e máx são exibidos corretamente, no entanto, o filtro usa os preços do idioma padrão. Isso faz com que ele exiba os resultados errados.
Solução alternativa
Antes de prosseguir, faça um backup completo do seu site. Em seguida:
- Abra a pasta do WooCommerce Multilingual.
- Encontre o arquivo /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php.
- Vá para a linha 620.
- Altere:
$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'] );
Para:
$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'] );