- 状态
- 未解决
- 报告针对
- 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 ); } } } } );