- สถานะ
- แก้ไขแล้ว
- รายงานสำหรับ
- WPML Multilingual & Multicurrency for WooCommerce 5.1.2
- แก้ไขใน
- WCML 5.2.0
- ปลั๊กอิน/ธีมที่เกี่ยวข้อง
- WooCommerce
- แท็กหัวข้อ
- Bug
ภาพรวมของปัญหา
เมื่อใช้ฟีเจอร์หลายสกุลเงินของ WPML Multilingual & Multicurrency for WooCommerce วิดเจ็ต ตัวกรองตามราคา จะแสดงช่วงราคาที่ไม่ถูกต้องสำหรับสกุลเงินรอง โดยจะแสดงช่วงของสกุลเงินเริ่มต้นเสมอ
วิธีแก้ปัญหาชั่วคราว
โปรดตรวจสอบให้แน่ใจว่าได้ทำการสำรองข้อมูลทั้งหมดของไซต์ของคุณก่อนดำเนินการต่อ
- เพิ่มข้อมูลโค้ดต่อไปนี้ลงในไฟล์ functions.php ของธีมของคุณ:
use function WCML\functions\getClientCurrency; use function WPML\Container\make; add_filter( 'rest_request_after_callbacks', function( $response, $handler, $request ) { if ( wcml_is_multi_currency_on() && 'GET' === $request->get_method() && 'products/collection-data' === substr( $request->get_route(), -24 ) && ! empty( $request['calculate_price_range'] ) ) { $mc = make( \WCML_Multi_Currency::class ); $from_currency = $mc->get_default_currency(); $to_currency = getClientCurrency(); $data = $response->get_data(); $data['price_range']->min_price = $mc->prices->convert_price_amount( $mc->prices->unconvert_price_amount( $data['price_range']->min_price, $from_currency ), $to_currency ); $data['price_range']->max_price = $mc->prices->convert_price_amount( $mc->prices->unconvert_price_amount( $data['price_range']->max_price, $from_currency ), $to_currency ); $response->set_data( $data ); } return $response; }, 10, 3 );