- Estado
- Resuelto
- Notificado para
- WPML Multilingual & Multicurrency for WooCommerce 4.11.6
- Resuelto en
- 4.12.0
Resumen del problema
WooCommerce le ofrece un widget Filtrar por precio que permite a sus usuarios filtrar fácilmente sus productos.
Actualmente, si utiliza nuestra función multimoneda, notará que en las monedas secundarias, los valores mín. y máx. se muestran correctamente; sin embargo, el filtro utiliza los precios del idioma predeterminado. Esto hace que muestre resultados incorrectos.
Solución alternativa
Antes de continuar, haga una copia de seguridad completa de su sitio. Luego:
- Abra su carpeta de WooCommerce Multilingual.
- Busque el archivo /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php.
- Vaya a la línea 620.
- Cambie:
$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'] );
Por:
$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'] );