- Statut
- Résolu
- Signalé pour
- WPML Multilingual & Multicurrency for WooCommerce 5.1.2
- Résolu dans
- WCML 5.2.0
- Extension/thème associé
- WooCommerce
- Étiquettes de sujet
- Bug
Aperçu de l’anomalie
Lors de l’utilisation de la fonctionnalité multidevise de WPML Multilingual & Multicurrency for WooCommerce, le widget Filtrer par prix affiche une fourchette de prix inexacte pour les devises secondaires. Il affiche toujours la fourchette de la devise par défaut.
Solution de contournement
Assurez-vous d’effectuer une sauvegarde complète de votre site avant de continuer.
- Ajoutez l’extrait de code suivant dans le fichier functions.php de votre thème :
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 );