- Status
- Gelöst
- Gemeldet für
- WPML Multilingual & Multicurrency for WooCommerce 4.11.6
- Gelöst in
- 4.12.0
Übersicht über das Problem
WooCommerce bietet Ihnen ein Widget Nach Preis filtern, mit dem Ihre Benutzer Ihre Produkte einfach filtern können.
Wenn Sie aktuell unsere Multicurrency-Funktion nutzen, werden Sie feststellen, dass in Sekundärwährungen die Werte für min und max korrekt angezeigt werden, der Filter jedoch die Preise aus der Standardsprache verwendet. Dies führt dazu, dass falsche Ergebnisse angezeigt werden.
Problemumgehung
Bevor Sie fortfahren, erstellen Sie ein vollständiges Backup Ihrer Website. Anschließend:
- Öffnen Sie Ihren WooCommerce Multilingual-Ordner.
- Suchen Sie die Datei /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php.
- Gehen Sie zu Zeile 620.
- Ersetzen Sie:
$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'] );
durch:
$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'] );