- ステータス
- 未解決
- 報告対象
- 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 ); } } } } );