{"id":7834,"date":"2025-07-01T07:37:42","date_gmt":"2025-07-01T07:37:42","guid":{"rendered":"https:\/\/reluggz.com\/?page_id=7834"},"modified":"2025-07-23T12:17:35","modified_gmt":"2025-07-23T12:17:35","slug":"update-header","status":"publish","type":"page","link":"https:\/\/reluggz.com\/fr\/update-header\/","title":{"rendered":"Mise \u00c0 Jour De L&#039;En-T\u00eate"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7834\" class=\"elementor elementor-7834\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a33f961 e-flex e-con-boxed e-con e-parent\" data-id=\"a33f961\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-37a15a7 e-con-full e-flex e-con e-child\" data-id=\"37a15a7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-63fd05e elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"63fd05e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Transparente Bagages D&#039;Exp\u00e9dition, N&#039;Importe O\u00f9, N&#039;Importe Quand. <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fdf2feb ctHeaderQ elementor-widget elementor-widget-shortcode\" data-id=\"fdf2feb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div class=\"packlink-quote-form-container\">\n    <form id=\"packlink-quote-form\" class=\"packlink-quote-form\" method=\"post\" action=\"\">\n        <div class=\"quote-form-header\">\n            <h2 class=\"quote-form-title\">\n                Ship my luggage from            <\/h2>\n            <div class=\"quote-form-fields\">\n                <span class=\"country-inputs\">\n                    <span class=\"country-input-wrapper\">\n                        <div class=\"country-search-wrapper\">\n                            <input type=\"text\" class=\"country-search\" id=\"quote-origin-country-search\"\n                                placeholder=\"Search origin country\"\n                                autocomplete=\"off\">\n                            <input type=\"hidden\" name=\"origin_country\" id=\"quote-origin-country\" required>\n                            <div class=\"country-options\" id=\"quote-origin-country-options\"><\/div>\n                        <\/div>\n                    <\/span>\n\n                    <span class=\"to-text\">to<\/span>\n\n                    <span class=\"country-input-wrapper\">\n                        <div class=\"country-search-wrapper\">\n                            <input type=\"text\" class=\"country-search\" id=\"quote-destination-country-search\"\n                                placeholder=\"Search destination country\"\n                                autocomplete=\"off\">\n                            <input type=\"hidden\" name=\"destination_country\" id=\"quote-destination-country\" required>\n                            <div class=\"country-options\" id=\"quote-destination-country-options\"><\/div>\n                        <\/div>\n                    <\/span>\n                <\/span>\n            <\/div>\n\n            <div class=\"quote-form-actions\">\n                <button type=\"submit\" class=\"get-quote-btn\"\n                    style=\"background-color: #027361\">\n                    Get My Quote \u2192\n                <\/button>\n            <\/div>\n\n            <input type=\"hidden\" name=\"redirect_url\" value=\"\/ship-my-luggage\/\">\n            <input type=\"hidden\" name=\"action\" value=\"packlink_quote_redirect\">\n            <input type=\"hidden\" id=\"packlink-ajax-nonce\" value=\"c63a3fa28e\">\n            <input type=\"hidden\" id=\"quote_nonce\" name=\"quote_nonce\" value=\"853b0efee2\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/fr\/wp-json\/wp\/v2\/pages\/7834\" \/>    <input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n<\/div>\n\n<script type=\"text\/javascript\">\njQuery(document).ready(function($) {\n    \/\/ Initialize the quote form with the same functionality as main form\n    initializeQuoteFormCountrySearch();\n});\n\nfunction initializeQuoteFormCountrySearch() {\n    \/\/ Load destinations for country search (same as main form)\n    jQuery.ajax({\n        url: packlink_custom.ajax_url,\n        type: 'GET',\n        data: {\n            action: 'packlink_get_destinations',\n            security: packlink_custom.ajax_nonce\n        },\n        success: function(response) {\n            if (response.success && Array.isArray(response.data)) {\n                var destinations = response.data;\n\n                \/\/ Setup country search for origin (using same function as main form)\n                setupQuoteCountrySearch(\n                    jQuery('#quote-origin-country-search'),\n                    jQuery('#quote-origin-country'),\n                    jQuery('#quote-origin-country-options'),\n                    destinations,\n                    'quote-origin',\n                    'origin'\n                );\n\n                \/\/ Setup country search for destination (using same function as main form)\n                setupQuoteCountrySearch(\n                    jQuery('#quote-destination-country-search'),\n                    jQuery('#quote-destination-country'),\n                    jQuery('#quote-destination-country-options'),\n                    destinations,\n                    'quote-destination',\n                    'destination'\n                );\n            }\n        },\n        error: function() {\n            console.error('Failed to load destinations for quote form');\n        }\n    });\n}\n\n\/\/ Use the exact same country search logic as the main form\nfunction setupQuoteCountrySearch(searchInput, hiddenInput, optionsContainer, destinations, routeIndex, type) {\n    var debounceTimer;\n\n    \/\/ Search input handler\n    searchInput.on(\"input\", function() {\n        var query = jQuery(this).val().toLowerCase();\n        clearTimeout(debounceTimer);\n\n        if (query.length < 1) {\n            optionsContainer.removeClass(\"active\");\n            return;\n        }\n\n        debounceTimer = setTimeout(function() {\n            var filtered = destinations.filter(function(d) {\n                return d.name.toLowerCase().includes(query) ||\n                    d.isoCode.toLowerCase().includes(query);\n            });\n\n            renderQuoteCountryOptions(filtered, optionsContainer, searchInput, hiddenInput, routeIndex,\n                type);\n            optionsContainer.addClass(\"active\");\n        }, 300);\n    });\n\n    \/\/ Show options on focus\n    searchInput.on(\"focus\", function() {\n        var query = jQuery(this).val().toLowerCase();\n        var filtered = destinations.filter(function(d) {\n            return query === '' || d.name.toLowerCase().includes(query) ||\n                d.isoCode.toLowerCase().includes(query);\n        });\n        renderQuoteCountryOptions(filtered, optionsContainer, searchInput, hiddenInput, routeIndex, type);\n        optionsContainer.addClass(\"active\");\n    });\n\n    \/\/ Handle click outside\n    jQuery(document).on(\"click\", function(e) {\n        if (!jQuery(e.target).closest(\".country-search-wrapper\").length) {\n            optionsContainer.removeClass(\"active\");\n        }\n    });\n\n    \/\/ Handle keyboard navigation\n    searchInput.on('keydown', function(e) {\n        var options = optionsContainer.find('.country-option');\n        var selected = optionsContainer.find('.country-option.selected');\n        var currentIndex = selected.length ? selected.index() : -1;\n\n        switch (e.keyCode) {\n            case 38: \/\/ Up arrow\n                e.preventDefault();\n                if (currentIndex > 0) {\n                    options.removeClass('selected');\n                    options.eq(currentIndex - 1).addClass('selected');\n                }\n                break;\n            case 40: \/\/ Down arrow\n                e.preventDefault();\n                if (currentIndex < options.length - 1) {\n                    options.removeClass('selected');\n                    options.eq(currentIndex + 1).addClass('selected');\n                }\n                break;\n            case 13: \/\/ Enter\n                e.preventDefault();\n                if (selected.length) {\n                    selected.trigger('click');\n                }\n                break;\n            case 27: \/\/ Escape\n                optionsContainer.removeClass(\"active\");\n                break;\n        }\n    });\n}\n\n\/\/ Use the exact same country options rendering as the main form\nfunction renderQuoteCountryOptions(countries, container, searchInput, hiddenInput, routeIndex, type) {\n    container.empty();\n\n    if (countries.length === 0) {\n        container.html('<div class=\"country-option no-results\">No countries found<\/div>').addClass(\"active\");\n        return;\n    }\n\n    \/\/ Sort countries alphabetically\n    countries.sort(function(a, b) {\n        if (a.name < b.name) return -1;\n        if (a.name > b.name) return 1;\n        return 0;\n    });\n\n    countries.slice(0, 10).forEach(function(country) {\n        var option = jQuery('<div>')\n            .addClass('country-option')\n            .text(country.name + ' (' + country.isoCode + ')')\n            .on('click', function() {\n                selectQuoteCountry(country, searchInput, hiddenInput, routeIndex, type);\n                container.removeClass(\"active\");\n            });\n\n        container.append(option);\n    });\n}\n\n\/\/ Use the exact same country selection logic as the main form\nfunction selectQuoteCountry(country, searchInput, hiddenInput, routeIndex, type) {\n    searchInput.val(country.name + ' (' + country.isoCode + ')');\n    hiddenInput.val(country.id).attr('data-iso', country.isoCode);\n\n    \/\/ Add visual feedback\n    searchInput.removeClass('error').addClass('valid');\n\n    \/\/ Remove any error messages for this field\n    var errorMessage = searchInput.closest('.country-search-wrapper').find('.error-message');\n    if (errorMessage.length) {\n        errorMessage.remove();\n    }\n\n    \/\/ Trigger change event\n    hiddenInput.trigger('change');\n\n    \/\/ Auto-clear the other field's error if both are now filled\n    setTimeout(function() {\n        var originFilled = jQuery('#quote-origin-country').val();\n        var destinationFilled = jQuery('#quote-destination-country').val();\n\n        if (originFilled && destinationFilled) {\n            \/\/ Clear all error messages\n            jQuery('.packlink-quote-form .error-message').remove();\n            jQuery('.packlink-quote-form .country-search').removeClass('error');\n        }\n    }, 100);\n}\n\n\/\/ Immediate validation clearing when countries are selected\njQuery(document).ready(function($) {\n    \/\/ Clear validation errors immediately when typing\n    $('#quote-origin-country-search, #quote-destination-country-search').on('input keyup', function() {\n        var $this = $(this);\n        $this.removeClass('error');\n        $this.closest('.country-search-wrapper').find('.error-message').remove();\n    });\n\n    \/\/ Clear validation errors when hidden inputs change (country selected)\n    $('#quote-origin-country, #quote-destination-country').on('change', function() {\n        var $searchInput = $(this).siblings('.country-search');\n        $searchInput.removeClass('error');\n        $searchInput.closest('.country-search-wrapper').find('.error-message').remove();\n\n        \/\/ If both fields are filled, clear all errors\n        var originFilled = $('#quote-origin-country').val();\n        var destinationFilled = $('#quote-destination-country').val();\n\n        if (originFilled && destinationFilled) {\n            $('.packlink-quote-form .error-message').remove();\n            $('.packlink-quote-form .country-search').removeClass('error');\n        }\n    });\n});\n<\/script><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7a57c96 e-flex e-con-boxed e-con e-parent\" data-id=\"7a57c96\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d759799 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"d759799\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Voyager l\u00e9ger, sans stress, et avec une totale confiance. Reluggz prend la charge de bagages vos \u00e9paules en offrant un moyen rapide, s\u00fbr, et le co\u00fbt-efficacit\u00e9 de la solution d&#039;exp\u00e9dition dans le monde entier. Si vous \u00eates un voyageur fr\u00e9quent, un digital nomade, ou simplement \u00e0 la recherche d&#039;une mani\u00e8re sans tracas pour le transport de vos sacs, Reluggz veille \u00e0 ce qu&#039;ils arrivent en toute s\u00e9curit\u00e9 \u00e0 votre destination, vous pouvez donc vous concentrer sur profiter le voyage.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-11a79ad e-flex e-con-boxed e-con e-parent\" data-id=\"11a79ad\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-cfd17a4 e-con-full e-flex e-con e-child\" data-id=\"cfd17a4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-efbf906 elementor-widget elementor-widget-heading\" data-id=\"efbf906\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Notre Mission<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a5c7db0 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"a5c7db0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tNotre mission est simple: donner aux voyageurs la libert\u00e9 de se d\u00e9placer sans limites. Reluggz est en train de transformer l&#039;exp\u00e9rience des voyages en fournissant, de mani\u00e8re simple et abordable bagages de la solution d&#039;exp\u00e9dition. Pas plus de frais d&#039;exc\u00e9dent de bagages, de longues files d&#039;attente \u00e0 la r\u00e9clamation de bagages, ou de porter de lourds sacs\u2014juste une fa\u00e7on plus intelligente de voyager.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ed5f4a elementor-align-left elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"1ed5f4a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/reluggz.com\/fr\/ship-my-luggage\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Navire Bagages Maintenant<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8cfebc6 e-con-full e-flex e-con e-child\" data-id=\"8cfebc6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e0b73ee elementor-widget elementor-widget-heading\" data-id=\"e0b73ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Notre Vision<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a0f1479 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"a0f1479\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tNous r\u00eavons d&#039;un monde o\u00f9 le transport des bagages est aussi facile que de r\u00e9server un vol. Reluggz est en voyage pour devenir la principale plate-forme mondiale pour les bagages de l&#039;exp\u00e9dition, ce qui rend les d\u00e9placements plus lisse, plus intelligent, et le stress-libre pour des millions de personnes \u00e0 travers le monde.\n\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6462a04 elementor-align-left elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"6462a04\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/reluggz.com\/fr\/ship-my-luggage\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Navire Bagages Maintenant<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Seamless Luggage Shipping, Anywhere, Anytime. Travel light, stress-free, and with total confidence. Reluggz takes the burden of luggage off your shoulders by offering a fast, secure, and cost-effective shipping solution worldwide. Whether you&#8217;re a frequent flyer, a digital nomad, or simply looking for a hassle-free way to transport your bags, Reluggz ensures they arrive safely [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7834","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/reluggz.com\/fr\/wp-json\/wp\/v2\/pages\/7834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/reluggz.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/reluggz.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/reluggz.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/reluggz.com\/fr\/wp-json\/wp\/v2\/comments?post=7834"}],"version-history":[{"count":40,"href":"https:\/\/reluggz.com\/fr\/wp-json\/wp\/v2\/pages\/7834\/revisions"}],"predecessor-version":[{"id":7943,"href":"https:\/\/reluggz.com\/fr\/wp-json\/wp\/v2\/pages\/7834\/revisions\/7943"}],"wp:attachment":[{"href":"https:\/\/reluggz.com\/fr\/wp-json\/wp\/v2\/media?parent=7834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}