285 lines
9.1 KiB
PHP
285 lines
9.1 KiB
PHP
<?php
|
|
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
|
|
header("Cache-Control: post-check=0, pre-check=0", false);
|
|
header("Pragma: no-cache");
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html <?php language_attributes(); ?>>
|
|
<head>
|
|
<?php wp_head(); ?>
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
|
<style>
|
|
.individual-tours {
|
|
padding: 4rem 0;
|
|
background-color: #f9f9f9;
|
|
}
|
|
|
|
.container {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 0 1rem;
|
|
}
|
|
|
|
.individual-tours .container {
|
|
max-width: 100%;
|
|
padding: 0 2rem;
|
|
}
|
|
|
|
.individual-tours h2 {
|
|
text-align: center;
|
|
margin-bottom: 2rem;
|
|
color: #333;
|
|
font-size: 2.5rem;
|
|
max-width: 1200px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.tours-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, 350px);
|
|
gap: 2rem;
|
|
padding: 1rem;
|
|
justify-content: center;
|
|
width: 100%;
|
|
max-width: 1800px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.tour-card {
|
|
width: 350px;
|
|
background: white;
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
|
transition: transform 0.3s ease;
|
|
height: 420px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tour-card:hover {
|
|
transform: translateY(-5px);
|
|
}
|
|
|
|
.tour-card .tour-image {
|
|
width: 100%;
|
|
height: 200px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tour-card .tour-image img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.tour-card:hover .tour-image img {
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
.tour-card .tour-info {
|
|
padding: 1.5rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.tour-card h3 {
|
|
margin: 0 0 1rem;
|
|
color: #333;
|
|
font-size: 1.25rem;
|
|
line-height: 1.4;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tour-card p {
|
|
color: #666;
|
|
margin-bottom: 1rem;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 3;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.tour-card .tour-details {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 1rem;
|
|
margin-top: auto;
|
|
}
|
|
|
|
.tour-card .price {
|
|
font-weight: bold;
|
|
color: #2c3e50;
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.tour-card .duration {
|
|
color: #666;
|
|
}
|
|
|
|
.tour-card .btn-view {
|
|
display: block;
|
|
text-align: center;
|
|
padding: 0.8rem;
|
|
background-color: var(--accent);
|
|
color: white;
|
|
text-decoration: none;
|
|
border-radius: 4px;
|
|
transition: background-color 0.3s ease;
|
|
margin-top: auto;
|
|
}
|
|
|
|
.tour-card .btn-view:hover {
|
|
background-color: var(--accent-dark);
|
|
}
|
|
|
|
.no-tours {
|
|
text-align: center;
|
|
padding: 2rem;
|
|
margin: 1rem 0;
|
|
border-radius: 8px;
|
|
font-size: 1.1rem;
|
|
background-color: #f8f9fa;
|
|
color: #6c757d;
|
|
border: 1px solid #dee2e6;
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.individual-tours h2 {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.tours-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.tour-card {
|
|
width: 100%;
|
|
height: auto;
|
|
min-height: 450px;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body <?php body_class(); ?>>
|
|
|
|
<?php get_header(); ?>
|
|
|
|
<!-- Individual Tours -->
|
|
<section class="individual-tours">
|
|
<div class="container">
|
|
<h2><?php
|
|
$page_title = get_post_meta(get_the_ID(), '_page_title', true);
|
|
echo esc_html($page_title ? $page_title : get_the_title());
|
|
?></h2>
|
|
<div class="tours-grid">
|
|
<?php
|
|
$journey_id = get_the_ID();
|
|
|
|
// Pridobi shranjen vrstni red
|
|
$saved_order = get_option('individual_tour_order_' . $journey_id, '');
|
|
$order_array = !empty($saved_order) ? explode(',', $saved_order) : array();
|
|
|
|
// Definiraj query argumente
|
|
$args = array(
|
|
'post_type' => 'individual_tour',
|
|
'posts_per_page' => -1,
|
|
'meta_key' => '_experience_journey',
|
|
'meta_value' => $journey_id,
|
|
'meta_compare' => '='
|
|
);
|
|
|
|
// Če imamo shranjen vrstni red, uporabi post__in in orderby
|
|
if (!empty($order_array)) {
|
|
$args['post__in'] = $order_array;
|
|
$args['orderby'] = 'post__in';
|
|
}
|
|
|
|
$tours = new WP_Query($args);
|
|
|
|
// Debug v WordPress log
|
|
error_log('=== EXPERIENCE JOURNEY DEBUG ===');
|
|
error_log('Journey ID: ' . $journey_id);
|
|
error_log('Found posts: ' . $tours->found_posts);
|
|
error_log('Post count: ' . $tours->post_count);
|
|
error_log('Max num pages: ' . $tours->max_num_pages);
|
|
error_log('Query SQL: ' . $tours->request);
|
|
error_log('Saved order array: ' . print_r($order_array, true));
|
|
error_log('=== END DEBUG ===');
|
|
|
|
// Dodajmo tudi vizualni debug za administratorje
|
|
if (current_user_can('administrator')) {
|
|
echo '<div style="background: #f1f1f1; padding: 20px; margin: 20px; border: 1px solid #ddd;">';
|
|
echo '<h3>Debug Info (visible only to admins):</h3>';
|
|
echo '<p>Found posts: ' . $tours->found_posts . '</p>';
|
|
echo '<p>Post count: ' . $tours->post_count . '</p>';
|
|
echo '<p>Journey ID: ' . $journey_id . '</p>';
|
|
echo '</div>';
|
|
}
|
|
|
|
if ($tours->have_posts()) :
|
|
while ($tours->have_posts()) : $tours->the_post();
|
|
// Pridobi hero sliko
|
|
$hero_image_id = get_post_meta(get_the_ID(), '_hero_image', true);
|
|
$image = wp_get_attachment_image_url($hero_image_id, 'full');
|
|
// Če hero slika ne obstaja, uporabi featured image
|
|
if (!$image) {
|
|
$image = get_the_post_thumbnail_url(get_the_ID(), 'large');
|
|
}
|
|
// Če ni nobene slike, uporabi placeholder
|
|
if (!$image) {
|
|
$image = get_theme_file_uri('images/placeholder.jpg');
|
|
}
|
|
$price = get_post_meta(get_the_ID(), '_tour_price', true);
|
|
$duration = get_post_meta(get_the_ID(), '_tour_duration', true);
|
|
?>
|
|
<div class="tour-card">
|
|
<div class="tour-image">
|
|
<img src="<?php echo esc_url($image); ?>"
|
|
alt="<?php echo esc_attr(get_the_title()); ?>"
|
|
loading="lazy">
|
|
</div>
|
|
<div class="tour-info">
|
|
<div>
|
|
<h3><?php echo esc_html(get_the_title()); ?></h3>
|
|
<p><?php echo esc_html(get_the_excerpt()); ?></p>
|
|
</div>
|
|
<div>
|
|
<div class="tour-details">
|
|
<?php if ($price) : ?>
|
|
<span class="price">€<?php echo esc_html($price); ?></span>
|
|
<?php endif; ?>
|
|
<?php if ($duration) : ?>
|
|
<span class="duration"><?php echo esc_html($duration); ?> days</span>
|
|
<?php endif; ?>
|
|
</div>
|
|
<a href="<?php echo esc_url(get_permalink()); ?>" class="btn-view">View Details</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
endwhile;
|
|
wp_reset_postdata();
|
|
else :
|
|
?>
|
|
<p class="no-tours">Currently no individual tours in this category.</p>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<?php get_footer(); ?>
|
|
|
|
</body>
|
|
</html>
|