WPML
สถานะ
แก้ไขแล้ว
รายงานสำหรับ
WPML Multilingual & Multicurrency for WooCommerce 4.11.6
แก้ไขใน
4.12.0

ภาพรวมของปัญหา

WooCommerce มีวิดเจ็ต กรองตามราคา ให้คุณ ซึ่งช่วยให้ผู้ใช้ของคุณสามารถกรองสินค้าได้อย่างง่ายดาย

ปัจจุบัน หากคุณใช้ฟีเจอร์หลายสกุลเงินของเรา คุณจะสังเกตเห็นว่าในสกุลเงินรอง ค่า min และ max จะแสดงผลอย่างถูกต้อง อย่างไรก็ตาม ตัวกรองจะใช้ราคาจากภาษาเริ่มต้น ซึ่งทำให้แสดงผลลัพธ์ที่ไม่ถูกต้อง

วิธีแก้ปัญหาชั่วคราว

ก่อนดำเนินการต่อ สำรองข้อมูลไซต์ของคุณแบบเต็มรูปแบบ จากนั้น:


  1. เปิดโฟลเดอร์ WooCommerce Multilingual ของคุณ

  2. ค้นหาไฟล์ /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php

  3. ไปที่บรรทัด 620

  4. เปลี่ยน:
    $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'] );

    เป็น:

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

ปัญหาที่ทราบแล้วทั้งหมด →