Chuyển đến nội dung Chuyển đến thanh bên

Open

Reported for: WPML Multilingual & Multicurrency for WooCommerce 5.3.8

Topic Tags: Bug, Compatibility, WCML

Overview of the issue

When using WooCommerce Bookings with a multi-currency setup and configuring currencies to change based on selected countries (without a visible currency switcher), the prices do not adjust according to the selected country during the checkout process. While the currency symbol changes, the actual price remains fixed, causing discrepancies in the displayed amounts.

Workaround

Please, make sure of having a full site backup of your site before proceeding.

  • Open your theme’s functions.php file.
  • Add the following snippet:
    add_filter( 'woocommerce_checkout_update_order_review', function() {
    		$cartItems = WC()->cart->get_cart();
    
    		if ( is_array( $cartItems ) ) {
    			foreach ( $cartItems as &$cartItem ) {
    				if ( isset( $cartItem['booking'] ) && isset( $cartItem['data'] ) ) {
    					$product                = $cartItem['data'];
    					$product->check_in_cart = false;
    					$calculatedCost         = WC_Bookings_Cost_Calculation::calculate_booking_cost( $cartItem['booking'], $product );
    
    					$cartItem['booking']['_cost'] = $calculatedCost;
    					$cartItem['data']->set_price( $calculatedCost );
    				}
    			}
    		}
    	} );
    

Để lại trả lời

Vui lòng giữ đúng chủ đề và tôn trọng người khác. Nếu bạn cần trợ giúp với các vấn đề không liên quan đến bài đăng này, hãy sử dụng Diễn đàn Hỗ trợ của chúng tôi để bắt đầu trò chuyện hoặc gửi vé hỗ trợ.

Bạn có thể sử dụng các thẻ này:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>