- สถานะ
- แก้ไขแล้ว
- รายงานสำหรับ
- WPML Multilingual & Multicurrency for WooCommerce 4.11.6
- แก้ไขใน
- 4.12.0
ภาพรวมของปัญหา
WooCommerce มีวิดเจ็ต กรองตามราคา ให้คุณ ซึ่งช่วยให้ผู้ใช้ของคุณสามารถกรองสินค้าได้อย่างง่ายดาย
ปัจจุบัน หากคุณใช้ฟีเจอร์หลายสกุลเงินของเรา คุณจะสังเกตเห็นว่าในสกุลเงินรอง ค่า min และ max จะแสดงผลอย่างถูกต้อง อย่างไรก็ตาม ตัวกรองจะใช้ราคาจากภาษาเริ่มต้น ซึ่งทำให้แสดงผลลัพธ์ที่ไม่ถูกต้อง
วิธีแก้ปัญหาชั่วคราว
ก่อนดำเนินการต่อ สำรองข้อมูลไซต์ของคุณแบบเต็มรูปแบบ จากนั้น:
- เปิดโฟลเดอร์ WooCommerce Multilingual ของคุณ
- ค้นหาไฟล์ /woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php
- ไปที่บรรทัด 620
- เปลี่ยน:
$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'] );