WPML

Ü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

Dieses Problem ist behoben. Ein Update auf die neueste Version behebt dies auf Ihrer Website, daher benötigen Sie diese Problemumgehung nur, wenn Sie noch nicht aktualisieren können.

Bevor Sie fortfahren, erstellen Sie ein vollständiges Backup Ihrer Website. Anschließend:

  1. Öffnen Sie Ihren WooCommerce Multilingual-Ordner.
  2. Suchen Sie die Datei /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php.
  3. Gehen Sie zu Zeile 620.
  4. 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'] );

Alle bekannten Probleme

Tritt dieses Problem weiterhin auf?

Wenn das Update das Problem nicht behebt, stellen Sie eine Support-Anfrage und wir sehen uns das gemeinsam mit Ihnen an.