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 );
    				}
    			}
    		}
    	} );

所有已知问题 →