WPML
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:


  1. Apri la cartella di WooCommerce Multilingual.

  2. Trova il file /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php.

  3. Vai alla riga 620.

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

Tutti i problemi noti →