- Estado
- Resuelto
- Notificado para
- WPML Multilingual & Multicurrency for WooCommerce 5.1.2
- Resuelto en
- WCML 5.2.0
- Plugin/tema relacionado
- WooCommerce
- Etiquetas de temática
- Bug
Resumen del problema
Al usar la función multimoneda de WPML Multilingual & Multicurrency for WooCommerce, el widget Filtrar por precio muestra un rango de precios inexacto para las monedas secundarias. Siempre muestra el rango de la moneda predeterminada.
Solución alternativa
Por favor, asegúrese de hacer una copia de seguridad completa de su sitio antes de continuar.
- Añada el siguiente fragmento en el archivo functions.php de su 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 );