WPML
สถานะ
แก้ไขแล้ว
รายงานสำหรับ
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 );

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