نظرة عامة على المشكلة
عند استخدام 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 ); } } } } );