WPML
Statut
Résolu
Signalé pour
WPML Multilingual & Multicurrency for WooCommerce 4.11.6
Résolu dans
4.12.0

Aperçu de l’anomalie

WooCommerce vous fournit un widget Filtrer par prix qui permet à vos utilisateurs de filtrer facilement vos produits.

Actuellement, si vous utilisez notre fonctionnalité multidevise, vous remarquerez que dans les devises secondaires, les valeurs min et max s’affichent correctement, cependant le filtre utilise les prix de la langue par défaut. Cela entraîne l’affichage de résultats erronés.

Solution de contournement

Avant de continuer, faites une sauvegarde complète de votre site. Ensuite :


  1. Ouvrez votre dossier WooCommerce Multilingual.

  2. Trouvez le fichier /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php.

  3. Allez à la ligne 620.

  4. Remplacez :
    $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'] );

    Par :

    $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'] );

Toutes les anomalies connues →