- Stato
- Risolto
- Segnalato per
- WPML Multilingual & Multicurrency for WooCommerce 5.1.2
- Risolto in
- WCML 5.2.0
- Plugin/tema correlato
- WooCommerce
- Tag dell’argomento
- Bug
Panoramica del problema
Quando usi la funzionalità multivaluta di WPML Multilingual & Multicurrency for WooCommerce, il widget Filtra per prezzo mostra un intervallo di prezzo errato per le valute secondarie. Mostra sempre l’intervallo della valuta predefinita.
Soluzione alternativa
Assicurati di effettuare un backup completo del tuo sito prima di procedere.
- Aggiungi il seguente snippet nel file functions.php del tuo tema:
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 );