- Статус
- Открыто
- Заявлено для
- 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 ); } } } } );