WPML
Estado
Resuelto
Notificado para
WPML Multilingual & Multicurrency for WooCommerce 5.5.1
Resuelto en
WooCommerce Multilingual & Multicurrency 5.5.2
Etiquetas de temática
Bug, Compatibility, WCML

Resumen del problema

Cuando tiene una reserva con personas y hay más de 1 persona para la reserva, la disponibilidad no se ajustará correctamente, lo que provocará que se muestren espacios disponibles incorrectos para la franja horaria disponible.

Solución alternativa

Nuestros desarrolladores están trabajando para solucionarlo. Por el momento, puede volver a WCML 5.5.0 o parchear el código yendo a /wp-content/plugins/woocommerce-multilingual/compatibility/WcBookings/class-wcml-bookings.php
Ajuste el código de:

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

a:
			$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 );

Todos los problemas conocidos →