WPML
ステータス
未解決
報告対象
WPML Multilingual & Multicurrency for WooCommerce 5.3.8
関連するプラグイン/テーマ
WooCommerce Bookings
トピックタグ
Bug, Compatibility, WCML

問題の概要

多通貨のセットアップでWooCommerce Bookingsを使用し、選択した国に基づいて通貨が変更されるように設定している場合(表示される通貨切り替えがない場合)、チェックアウト時に選択した国に応じて価格が調整されません。通貨記号は変わりますが、実際の価格は固定されたままであり、表示される金額に不一致が生じます。

回避策

続行する前に、必ずサイトの完全なバックアップを取得してください。


  • テーマのfunctions.phpファイルを開きます。

  • 次のスニペットを追加します。
    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 );
    				}
    			}
    		}
    	} );

すべての既知の問題 →