get_rates_range($current_room, $start_date, $end_date); $availability = EB_AP_Availability::instance()->get_availability_range($current_room, $start_date, $end_date); $deals = EB_AP_Deals::instance()->get_room_deals($current_room, true); // Create associative arrays for quick lookup $rates_by_date = array(); $availability_by_date = array(); foreach ($rates as $rate) { $rates_by_date[$rate['rate_date']] = $rate; } foreach ($availability as $avail) { $availability_by_date[$avail['availability_date']] = $avail; } // Get active deals for the date range $active_deals = array(); foreach ($deals as $deal) { if ($deal['date_from'] <= $end_date && $deal['date_to'] >= $start_date) { $active_deals[] = $deal; } } // Generate calendar data $calendar_data = array(); $current_date = new DateTime($start_date); $end_date_obj = new DateTime($end_date); while ($current_date <= $end_date_obj) { $date_str = $current_date->format('Y-m-d'); $calendar_data[] = array( 'date' => $date_str, 'formatted_date' => $current_date->format('M j'), 'day_name' => $current_date->format('D'), 'rates' => isset($rates_by_date[$date_str]) ? $rates_by_date[$date_str] : null, 'availability' => isset($availability_by_date[$date_str]) ? $availability_by_date[$date_str] : null, 'is_weekend' => in_array($current_date->format('N'), array(6, 7)) ); $current_date->add(new DateInterval('P1D')); } ?>

0) { $days_with_availability++; } } if ($rate_count > 0) { $avg_rate = $total_rate / $rate_count; } // Count days with active deals foreach ($active_deals as $deal) { $deal_start = new DateTime($deal['date_from']); $deal_end = new DateTime($deal['date_to']); $days_with_deals += $deal_end->diff($deal_start)->days + 1; } ?>
= $deal['date_from'] && $day['date'] <= $deal['date_to']) { $day_deals[] = $deal; } } if (!empty($day_deals)) { $cell_classes[] = 'deal-cell'; } ?>
' . __('Blocked', 'eb-advanced-pricing') . ''; } elseif ($availability && $availability['closed_to_arrival']) { echo '' . __('CTA', 'eb-advanced-pricing') . ''; } elseif ($availability && $availability['closed_to_departure']) { echo '' . __('CTD', 'eb-advanced-pricing') . ''; } elseif ($availability && $availability['available_rooms'] == 0) { echo '' . __('Sold Out', 'eb-advanced-pricing') . ''; } else { echo '' . __('Available', 'eb-advanced-pricing') . ''; } ?>
×

×