esc_html__('Primary Menu', 'grilctours'), 'footer' => esc_html__('Footer Menu', 'grilctours'), )); } add_action('after_setup_theme', 'grilctours_setup'); // Registracija stilov in skript function grilctours_scripts() { // Glavni CSS wp_enqueue_style('grilctours-style', get_stylesheet_uri()); // Google Fonts wp_enqueue_style('google-fonts', 'https://fonts.googleapis.com/css2?family=Inter+Tight:wght@500&display=swap'); // Font Awesome wp_enqueue_style('font-awesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css'); wp_enqueue_script('grilctours-script', get_template_directory_uri() . '/js/script.js', array(), '1.0.0', true); } add_action('wp_enqueue_scripts', 'grilctours_scripts'); // Dodaj podporo za media uploader v admin function grilctours_admin_scripts($hook) { global $post_type; // Naloži skripte samo na edit in add new straneh za individual_tour if (($hook == 'post.php' || $hook == 'post-new.php') && $post_type == 'individual_tour') { wp_enqueue_media(); wp_enqueue_script('grilctours-admin-script', get_template_directory_uri() . '/admin-scripts.js', array('jquery'), '1.0.0', true); } } add_action('admin_enqueue_scripts', 'grilctours_admin_scripts'); // Registracija Custom Post Type za Experience Journey function register_experience_journey_post_type() { $labels = array( 'name' => 'Experience Journeys', 'singular_name' => 'Experience Journey', 'menu_name' => 'Experience Journeys', 'add_new' => 'Add New Journey', 'add_new_item' => 'Add New Journey', 'edit_item' => 'Edit Journey', 'new_item' => 'New Journey', 'view_item' => 'View Journey', 'search_items' => 'Search Journeys', 'not_found' => 'No journeys found', 'not_found_in_trash' => 'No journeys found in Trash' ); $args = array( 'labels' => $labels, 'public' => true, 'has_archive' => true, 'menu_icon' => 'dashicons-palmtree', 'supports' => array('title', 'editor', 'thumbnail', 'excerpt'), 'rewrite' => array('slug' => 'journeys'), 'show_in_rest' => true, 'menu_position' => 5 ); register_post_type('experience_journey', $args); } add_action('init', 'register_experience_journey_post_type'); // Registracija Custom Post Type za Individual Tour function register_individual_tour_post_type() { $labels = array( 'name' => 'Individual Tours', 'singular_name' => 'Individual Tour', 'menu_name' => 'Individual Tours', 'add_new' => 'Add New Tour', 'add_new_item' => 'Add New Tour', 'edit_item' => 'Edit Tour', 'new_item' => 'New Tour', 'view_item' => 'View Tour', 'search_items' => 'Search Tours', 'not_found' => 'No tours found', 'not_found_in_trash' => 'No tours found in Trash' ); $args = array( 'labels' => $labels, 'public' => true, 'has_archive' => true, 'menu_icon' => 'dashicons-location', 'supports' => array('title', 'editor', 'thumbnail', 'excerpt'), 'rewrite' => array('slug' => 'tours'), 'show_in_rest' => true, 'menu_position' => 6 ); register_post_type('individual_tour', $args); } add_action('init', 'register_individual_tour_post_type'); // Vključi datoteko za meta polja tur require_once get_template_directory() . '/tour-meta-fields.php'; // Registracija meta boxov za Experience Journey function register_experience_journey_meta_boxes() { add_meta_box( 'experience_journey_details', 'Journey Details', 'render_experience_journey_meta_box', 'experience_journey', 'normal', 'high' ); } add_action('add_meta_boxes', 'register_experience_journey_meta_boxes'); // Render meta box za Experience Journey function render_experience_journey_meta_box($post) { $target_audience = get_post_meta($post->ID, '_target_audience', true); wp_nonce_field('experience_journey_nonce', 'experience_journey_nonce'); ?>
ID, '_price', true); $duration = get_post_meta($post->ID, '_duration', true); $distance = get_post_meta($post->ID, '_distance', true); $fitness_level = get_post_meta($post->ID, '_fitness_level', true); $hero_image = get_post_meta($post->ID, '_hero_image', true); $highlights = get_post_meta($post->ID, '_highlights', true) ?: array(''); $inclusions = get_post_meta($post->ID, '_inclusions', true) ?: array(''); $optional_extras = get_post_meta($post->ID, '_optional_extras', true) ?: array(''); $itinerary = get_post_meta($post->ID, '_itinerary', true) ?: array(array('title' => '', 'description' => '', 'image' => '')); wp_nonce_field('individual_tour_nonce', 'individual_tour_nonce'); ?> ID, '_experience_journey', true); $journeys = get_posts(array( 'post_type' => 'experience_journey', 'posts_per_page' => -1, 'orderby' => 'title', 'order' => 'ASC' )); if (empty($journeys)) { echo 'No experience journeys found. Please create one first.
'; return; } echo ''; } // Shrani meta podatke za Individual Tour function save_individual_tour_meta($post_id) { if (!isset($_POST['individual_tour_nonce']) || !wp_verify_nonce($_POST['individual_tour_nonce'], 'individual_tour_nonce')) { return; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } if (!current_user_can('edit_post', $post_id)) { return; } // Shrani osnovne podatke $fields = array( 'price' => 'sanitize_text_field', 'duration' => 'sanitize_text_field', 'distance' => 'sanitize_text_field', 'fitness_level' => 'sanitize_text_field', 'hero_image' => 'esc_url_raw', 'experience_journey' => 'absint' ); foreach ($fields as $field => $sanitize_callback) { if (isset($_POST[$field])) { update_post_meta($post_id, '_' . $field, $sanitize_callback($_POST[$field])); } } // Shrani array podatke $array_fields = array('highlights', 'inclusions', 'optional_extras'); foreach ($array_fields as $field) { if (isset($_POST[$field]) && is_array($_POST[$field])) { $sanitized = array_map('sanitize_text_field', array_filter($_POST[$field])); update_post_meta($post_id, '_' . $field, $sanitized); } } // Shrani itinerary if (isset($_POST['itinerary']) && is_array($_POST['itinerary'])) { $itinerary = array(); foreach ($_POST['itinerary'] as $day) { if (!empty($day['title']) || !empty($day['description'])) { $itinerary[] = array( 'title' => sanitize_text_field($day['title']), 'description' => sanitize_textarea_field($day['description']), 'image' => isset($day['image']) ? esc_url_raw($day['image']) : '' ); } } update_post_meta($post_id, '_itinerary', $itinerary); } } add_action('save_post_individual_tour', 'save_individual_tour_meta');