- סטטוס
- נפתר
- דווח עבור
- WPML Multilingual & Multicurrency for WooCommerce 5.5.1
- נפתר בגרסה
- WooCommerce Multilingual & Multicurrency 5.5.2
- תגיות נושא
- Bug, Compatibility, WCML
סקירה כללית של התקלה
כאשר יש לך הזמנה עם אנשים ויש יותר מאדם 1 עבור ההזמנה, הזמינות לא תותאם כראוי, וכתוצאה מכך יוצגו משבצות פנויות שגויות עבור משבצת הזמן הזמינה.
פתרון עוקף
המפתחים שלנו עובדים על תיקון הבעיה. בינתיים, חזור ל־WCML 5.5.0 או תקן את הקוד על ידי מעבר אל /wp-content/plugins/woocommerce-multilingual/compatibility/WcBookings/class-wcml-bookings.php
שנה את הקוד מ:
$booking_order_ids = [];
array_walk( $existing_bookings, function ( WC_Booking $booking ) use ( &$booking_order_ids ) {
/* @phpstan-ignore-next-line */
$booking_order_ids[] = $booking->get_order_id();
} );
$unique_ids = array_unique( $booking_order_ids ); // when blocked, we don't want each N-language variation to occupy one slot
return count( $unique_ids );ל:
$booking_person_counts_by_order = [];
foreach ( $existing_bookings as $booking ) {
/** @var WC_Booking $booking */
$order_id = $booking->get_order_id();
// Skip if already counted this order ID (to avoid double-counting translations)
if ( isset( $booking_person_counts_by_order[ $order_id ] ) ) {
continue;
}
// Get total persons (sum of all person types for this booking)
$person_counts = array_sum( $booking->get_person_counts() );
// Store count by order ID
$booking_person_counts_by_order[ $order_id ] = $person_counts;
}
// Return total number of persons across unique orders
return array_sum( $booking_person_counts_by_order );