| @@ -47,15 +47,19 @@ | ||
| 47 | 47 | |
| 48 | 48 | // Duration |
| 49 | 49 | $duration_days = (int) ($similar_trip->duration_days ?? 0); |
| 50 | 50 | $duration_nights = (int) ($similar_trip->duration_nights ?? 0); |
| 51 | + $duration_hours = (int) ($similar_trip->duration_hours ?? 0); | |
| 51 | 52 | $duration = [ |
| 52 | - 'has_duration' => $duration_days > 0, | |
| 53 | - 'formatted' => $duration_nights > 0 | |
| 54 | - /* translators: 1: number of days, 2: number of nights. */ | |
| 55 | - ? sprintf(_n('%1$d day %2$d night', '%1$d days %2$d nights', $duration_days, 'yatra'), $duration_days, $duration_nights) | |
| 56 | - /* translators: %d: number of days. */ | |
| 57 | - : sprintf(_n('%d day', '%d days', $duration_days, 'yatra'), $duration_days) | |
| 53 | + 'has_duration' => $duration_days > 0 || $duration_hours > 0, | |
| 54 | + // Hour-based day tour → "8 hours"; otherwise the day/night wording below. | |
| 55 | + 'formatted' => $duration_hours > 0 | |
| 56 | + ? yatra_format_duration(0, null, $duration_hours) | |
| 57 | + : ($duration_nights > 0 | |
| 58 | + /* translators: 1: number of days, 2: number of nights. */ | |
| 59 | + ? sprintf(_n('%1$d day %2$d night', '%1$d days %2$d nights', $duration_days, 'yatra'), $duration_days, $duration_nights) | |
| 60 | + /* translators: %d: number of days. */ | |
| 61 | + : sprintf(_n('%d day', '%d days', $duration_days, 'yatra'), $duration_days)) | |
| 58 | 62 | ]; |
| 59 | 63 | |
| 60 | 64 | // Difficulty — resolve classification id to label + icon (same logic as Trip::getDifficulty / quick facts) |
| 61 | 65 | $similar_difficulty_level = isset($similar_trip->difficulty_level) && $similar_trip->difficulty_level !== '' |