{"id":355,"date":"2015-08-12T12:07:32","date_gmt":"2015-08-12T12:07:32","guid":{"rendered":"http:\/\/savoy.nordicmade.com\/?page_id=355"},"modified":"2024-11-04T06:53:05","modified_gmt":"2024-11-04T06:53:05","slug":"volgen-van-bestellingen","status":"publish","type":"page","link":"https:\/\/fdvape.com\/nl\/volgen-van-bestellingen\/","title":{"rendered":"Volgen van bestellingen"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"355\" class=\"elementor elementor-355\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-772f86d1 e-flex e-con-boxed e-con e-parent\" data-id=\"772f86d1\" 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-a397a64 e-flex e-con-boxed e-con e-child\" data-id=\"a397a64\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-56d8cf1 elementor-widget elementor-widget-heading\" data-id=\"56d8cf1\" 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<h1 class=\"elementor-heading-title elementor-size-default\">Order Tracking<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-24ab20c elementor-widget elementor-widget-heading\" data-id=\"24ab20c\" 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<p class=\"elementor-heading-title elementor-size-default\">Enter your order number in the designated box<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-40470a2 elementor-widget elementor-widget-heading\" data-id=\"40470a2\" 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<p class=\"elementor-heading-title elementor-size-default\">Click the 'Track' button on the page<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc6736c elementor-widget__width-auto elementor-widget elementor-widget-html\" data-id=\"fc6736c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div>\r\r    <div class=\"track-main\">\r        <h4 class=\"track-title\">Logistics tracking number: <\/h4>\r        <div class=\"track-form\">\r            <input id=\"inputNo\" class=\"track-input\" placeholder=\"Please fill in Logistics tracking number\" type=\"text\" \/>\r            <span id=\"checkButton\" class=\"track-button\">Track<\/span>\r        <\/div>\r    <\/div>\r\r    <div id=\"trackingResults\" class=\"track-result\">\r    <\/div>\r    \r    \r    <div class=\"lang-switch\">\r        <span>Language: <\/span>\r        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('english');\">English<\/a> |\r        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('deutsch');\">Deutsch<\/a> |\r        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('french');\">Fran\u00e7ais<\/a> |\r        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('spanish');\">Espa\u00f1ol<\/a> |\r        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('italian');\">Italiano<\/a> |\r        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('swedish');\">Svenska<\/a> |\r        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('dutch');\">Nederlands<\/a> |\r        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('chinese_simplified');\">\u7b80\u4f53\u4e2d\u6587<\/a>\r    <\/div>\r\r<\/div>\r<script>\r    \r    \/\/ \u9ed8\u8ba4\u8bed\u8a00\r    let currentLanguage = localStorage.getItem('Language') || 'en';\r\r\r    function delUrlParam(param) {\r        let obj = new window.URL(window.location.href);\r        obj.searchParams.delete(param);\r        return obj.href;\r    }\r    \r    function addUrlParam(key, value) {\r        let obj = new window.URL(window.location.href);\r        obj.searchParams.set(key, value);\r        return obj.href;\r    }\r\r\r    function addLinksToText(text) { \r        var regex = \/(https?:\\\/\\\/[^\\s]+)\/g;\r        var newText = text.replace(regex, function(match) {\r            return '<a style=\"color: blue\" href=\"' + match + '\" target=\"_blank\">' + match + '<\/a>';\r        });\r        return newText;\r    }\r\r    function performTrackingQuery(trackingNumber) {\r        jQuery('#trackingResults').html(`\r            <p>Checking. Please wait....<\/p>\r        `);\r        \/\/ \u53d1\u9001\u67e5\u8be2\u8bf7\u6c42\u5230\u670d\u52a1\u5668\uff0c\u83b7\u53d6\u7269\u6d41\u4fe1\u606f\r        jQuery.ajax({\r            url: '\/wp-json\/api\/v1\/tracking\/' + trackingNumber,\r            method: 'GET',\r            success: async function(response) {\r                const list = JSON.parse(response);\r\r                \/\/ \u521d\u59cb\u5316 HTML \u5b57\u7b26\u4e32\r                var html = `<ul class=\"track-list\">`;\r\r                \/\/ \u5c06\u6240\u6709\u9879\u5148\u663e\u793a\u51fa\u6765\r                list.forEach(function(item, index) {\r                    html += `\r                        <li id=\"track-item-${index}\">\r                            <span class='time'>${item.time}<\/span>\r                            <span class='location' id='location-${index}'>Translating...<\/span>\r                            <span class='detail' id='detail-${index}'>Translating...<\/span>\r                        <\/li>`;\r                });\r\r                \/\/ \u7ed3\u675f\u5217\u8868\r                html += `<\/ul>`;\r\r                \/\/ \u5c06 HTML \u63d2\u5165\u5230\u9875\u9762\u4e2d\r                jQuery('#trackingResults').html(html);\r\r                \/\/ \u6279\u91cf\u7ffb\u8bd1\u5e76\u66f4\u65b0\u5185\u5bb9\r                 translateAndUpdateBatch(list);\r            },\r            error: function() {\r                jQuery('#trackingResults').html(`\r                    <p>\u67e5\u8be2\u51fa\u9519\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002<\/p>\r                `);\r            }\r        });\r    }\r\r    jQuery('#checkButton').click(function() {\r        var trackingNumber = jQuery('#inputNo').val();\r        console.log(trackingNumber);\r\r        if (trackingNumber.trim() !== '') {\r            history.pushState({}, 0, delUrlParam('no')); \r            history.pushState({}, 0, addUrlParam('no', trackingNumber));\r            performTrackingQuery(trackingNumber);\r        } else {\r            alert('Please enter the tracking number\uff01');\r        }\r    });\r\r    \/\/ \u6279\u91cf\u7ffb\u8bd1\u6587\u672c\u7684\u51fd\u6570\u5e76\u66f4\u65b0\u9875\u9762\r    async function translateAndUpdateBatch(list) {\r        try {\r            const textsToTranslate = list.flatMap(item => [item.location, item.detail]);\r            const translatedTexts = await translateTexts(textsToTranslate);\r\r            list.forEach(function(item, index) {\r                jQuery(`#location-${index}`).html(translatedTexts[index * 2]);\r                jQuery(`#detail-${index}`).html(addLinksToText(translatedTexts[index * 2 + 1]));\r            });\r        } catch (error) {\r            console.error('Translation error:', error);\r            list.forEach(function(item, index) {\r                jQuery(`#location-${index}`).html(item.location);\r                jQuery(`#detail-${index}`).html(addLinksToText(item.detail));\r            });\r        }\r    }\r\r\r    var translate = {\r        changeLanguage:  function(language) {\r            const languageMap = {\r                'english': 'en',\r                'deutsch': 'de',\r                'french': 'fr',\r                'spanish': 'es',\r                'italian': 'it',\r                'swedish': 'sv',\r                'dutch': 'nl',\r                'chinese_simplified': 'zh-Hans'\r            };\r            currentLanguage = languageMap[language] || 'en';\r            localStorage.setItem('Language', currentLanguage);\r            \/\/ \u91cd\u65b0\u6267\u884c\u67e5\u8be2\u4ee5\u66f4\u65b0\u7ffb\u8bd1\r            const list = jQuery('.track-list li').map(function(index, element) {\r                return {\r                    location: jQuery(`#location-${index}`).text(),\r                    detail: jQuery(`#detail-${index}`).text()\r                };\r            }).get();\r\r            if (list.length > 0) {\r                 list.forEach(function(item, index) {\r                    jQuery(`#location-${index}`).html('Translating...');\r                    jQuery(`#detail-${index}`).html('Translating...');\r                });\r                 translateAndUpdateBatch(list);\r            }\r        }\r    };\r    \r    async function translateTexts(texts) {\r        try {\r            const accessToken = await getAccessToken();\r            const response = await fetch(`https:\/\/api.cognitive.microsofttranslator.com\/translate?api-version=3.0&to=${currentLanguage}`, {\r                method: 'POST',\r                headers: {\r                    'Content-Type': 'application\/json',\r                    'Authorization': `Bearer ${accessToken}`,\r                },\r                body: JSON.stringify(texts.map(text => ({ 'Text': text })))\r            });\r\r            const data = await response.json();\r            return data.map(item => item.translations[0].text);\r        } catch (error) {\r            console.error('Translation error:', error);\r            return texts; \/\/ \u5982\u679c\u7ffb\u8bd1\u5931\u8d25\uff0c\u8fd4\u56de\u539f\u59cb\u6587\u672c\u6570\u7ec4\r        }\r    }\r\r    async function getAccessToken() {\r        const response = await fetch('https:\/\/edge.microsoft.com\/translate\/auth');\r        const token = await response.text();\r        return token;\r    }\r    \r    \r    \r    jQuery(document).ready(function() {\r        \/\/ \u83b7\u53d6 URL \u4e2d\u7684\u53c2\u6570\r        var urlParams = new URLSearchParams(window.location.search);\r        var trackingNumber = urlParams.get('no');\r\r        if (trackingNumber) {\r            \/\/ \u8bbe\u7f6e\u8ffd\u8e2a\u53f7\u7801\u5230\u8f93\u5165\u6846\r            jQuery('#inputNo').val(trackingNumber);\r\r            \/\/ \u6267\u884c\u67e5\u8be2\u64cd\u4f5c\r            performTrackingQuery(trackingNumber);\r        }\r\r        \r    });\r<\/script>\r\r\r<style>\r\t.track-form{\r\t\tdisplay: flex;\r\t}\r\t.track-input{\r\t   \t width: 100%;\r\t\tpadding:0 10px;\r\t}\r\t.track-button{\r\t\tbackground: #490292;\r\t\tpadding: 4px 50px;\r\t\tcolor: #fff;\r\t\tline-height: 3;\r    cursor: pointer;\r\t}\r\t\r\t.track-list {\r\t    padding: 0;\r\t}\r\t.track-list li{\r\t    display: flex;\r        align-items: center;\r\t    padding: 10px 0;\r        border-bottom: 1px solid #e6e6e6;\r\t}\r\t.track-list .time {\r\t    width: 20%;\r\t}\r\t.track-list .location {\r\t    width: 20%;\r\t}\r\t.track-list .detail {\r\t    width: 60%;\r\t}\r<\/style>\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\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Order Tracking Voer uw ordernummer in het daarvoor bestemde vakje in Klik op de knop &#039;Track&#039; op de pagina Logistiek trackingnummer: Track Taal: Engels | Duits | Frans | Spaans | Italiaans | Zweeds | Nederlands | Vereenvoudigd Chinees<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"both","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"Order Tracking,vape,vapeshop,Disposable Vape,fdvape","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"class_list":["post-355","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fdvape.com\/nl\/wp-json\/wp\/v2\/pages\/355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fdvape.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fdvape.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fdvape.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fdvape.com\/nl\/wp-json\/wp\/v2\/comments?post=355"}],"version-history":[{"count":0,"href":"https:\/\/fdvape.com\/nl\/wp-json\/wp\/v2\/pages\/355\/revisions"}],"wp:attachment":[{"href":"https:\/\/fdvape.com\/nl\/wp-json\/wp\/v2\/media?parent=355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}