- Stato
- Risolto
- Segnalato per
- WPML Multilingual & Multicurrency for WooCommerce 4.11.6
- Risolto in
- 4.12.0
Panoramica del problema
WooCommerce ti fornisce un widget Filtra per prezzo che permette ai tuoi utenti di filtrare facilmente i tuoi prodotti.
Attualmente, se stai usando la nostra funzionalità multivaluta, noterai che nelle valute secondarie i valori min e max vengono visualizzati correttamente, tuttavia il filtro utilizza i prezzi della lingua predefinita. Questo fa sì che mostri risultati errati.
Soluzione alternativa
Prima di procedere, esegui un backup completo del tuo sito. Quindi:
- Apri la cartella di WooCommerce Multilingual.
- Trova il file /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php.
- Vai alla riga 620.
- Sostituisci:
$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'] );
Con:
$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'] );