{"id":9849,"date":"2024-04-09T06:17:52","date_gmt":"2024-04-09T06:17:52","guid":{"rendered":"https:\/\/24hvape.com\/?page_id=9849"},"modified":"2024-11-15T11:55:57","modified_gmt":"2024-11-15T11:55:57","slug":"verfolgung","status":"publish","type":"page","link":"https:\/\/24hvape.com\/de\/tracking\/","title":{"rendered":"Verfolgung"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9849\" class=\"elementor elementor-9849\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3009e1f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3009e1f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-extended\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1fa73fd sc_layouts_column_icons_position_left\" data-id=\"1fa73fd\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-350def6 elementor-widget elementor-widget-html\" data-id=\"350def6\" 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\n\n<style>\n\t.track-form{\n\t\tdisplay: flex;\n\t}\n\t.track-input{\n\t    width: 30%;\n\t}\n\t.track-button{\n\t\tbackground: #d22756;\n\t\tpadding: 4px 30px;\n\t\tcolor: #fff;\n\t\tline-height: 3;\n    cursor: pointer;\n\t}\n\t\n\t.track-list {\n\t    padding: 0;\n\t}\n\t.track-list li{\n\t    display: flex;\n        align-items: center;\n\t    padding: 10px 0;\n        border-bottom: 1px solid #e6e6e6;\n\t}\n\t.track-list .time {\n\t    width: 20%;\n\t}\n\t.track-list .location {\n\t    width: 20%;\n\t}\n\t.track-list .detail {\n\t    width: 60%;\n\t}\n<\/style>\n\n\n<div>\n\n    <div class=\"track-main\">\n        <h6 class=\"track-title\">Logistics tracking number: <\/h6>\n        <div class=\"track-form\">\n            <input id=\"inputNo\" class=\"track-input\" placeholder=\"Please fill in Logistics tracking number\" type=\"text\" \/>\n            <span id=\"checkButton\" class=\"track-button\">Track<\/span>\n        <\/div>\n    <\/div>\n\n    <div id=\"trackingResults\" class=\"track-result\">\n    <\/div>\n    \n    \n    <div class=\"lang-switch\">\n        <span>Language: <\/span>\n        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('english');\">English<\/a> |\n        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('deutsch');\">Deutsch<\/a> |\n        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('french');\">Fran\u00e7ais<\/a> |\n        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('spanish');\">Espa\u00f1ol<\/a> |\n        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('italian');\">Italiano<\/a> |\n        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('swedish');\">Svenska<\/a> |\n        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('dutch');\">Nederlands<\/a> |\n        <a class=\"ignore\" href=\"javascript:translate.changeLanguage('chinese_simplified');\">\u7b80\u4f53\u4e2d\u6587<\/a>\n    <\/div>\n\n<\/div>\n<script>\n\n\n    \/\/ \u9ed8\u8ba4\u8bed\u8a00\n    let currentLanguage = localStorage.getItem('Language') || 'en';\n\n\n    function delUrlParam(param) {\n        let obj = new window.URL(window.location.href);\n        obj.searchParams.delete(param);\n        return obj.href;\n    }\n    \n    function addUrlParam(key, value) {\n        let obj = new window.URL(window.location.href);\n        obj.searchParams.set(key, value);\n        return obj.href;\n    }\n\n\n    function addLinksToText(text) { \n        var regex = \/(https?:\\\/\\\/[^\\s]+)\/g;\n        var newText = text.replace(regex, function(match) {\n            return '<a style=\"color: blue\" href=\"' + match + '\" target=\"_blank\">' + match + '<\/a>';\n        });\n        return newText;\n    }\n\n    function performTrackingQuery(trackingNumber) {\n        jQuery('#trackingResults').html(`\n            <p>Checking. Please wait....<\/p>\n        `);\n        \/\/ \u53d1\u9001\u67e5\u8be2\u8bf7\u6c42\u5230\u670d\u52a1\u5668\uff0c\u83b7\u53d6\u7269\u6d41\u4fe1\u606f\n        jQuery.ajax({\n            url: '\/wp-json\/api\/v1\/tracking\/' + trackingNumber,\n            method: 'GET',\n            success: async function(response) {\n                const list = JSON.parse(response);\n\n                \/\/ \u521d\u59cb\u5316 HTML \u5b57\u7b26\u4e32\n                var html = `<ul class=\"track-list\">`;\n\n                \/\/ \u5c06\u6240\u6709\u9879\u5148\u663e\u793a\u51fa\u6765\n                list.forEach(function(item, index) {\n                    html += `\n                        <li id=\"track-item-${index}\">\n                            <span class='time'>${item.time}<\/span>\n                            <span class='location' id='location-${index}'>Translating...<\/span>\n                            <span class='detail' id='detail-${index}'>Translating...<\/span>\n                        <\/li>`;\n                });\n\n                \/\/ \u7ed3\u675f\u5217\u8868\n                html += `<\/ul>`;\n\n                \/\/ \u5c06 HTML \u63d2\u5165\u5230\u9875\u9762\u4e2d\n                jQuery('#trackingResults').html(html);\n\n                \/\/ \u6279\u91cf\u7ffb\u8bd1\u5e76\u66f4\u65b0\u5185\u5bb9\n                 translateAndUpdateBatch(list);\n            },\n            error: function() {\n                jQuery('#trackingResults').html(`\n                    <p>\u67e5\u8be2\u51fa\u9519\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002<\/p>\n                `);\n            }\n        });\n    }\n\n    jQuery('#checkButton').click(function() {\n        var trackingNumber = jQuery('#inputNo').val();\n        console.log(trackingNumber);\n\n        if (trackingNumber.trim() !== '') {\n            history.pushState({}, 0, delUrlParam('no')); \n            history.pushState({}, 0, addUrlParam('no', trackingNumber));\n            performTrackingQuery(trackingNumber);\n        } else {\n            alert('Please enter the tracking number\uff01');\n        }\n    });\n\n    \/\/ \u6279\u91cf\u7ffb\u8bd1\u6587\u672c\u7684\u51fd\u6570\u5e76\u66f4\u65b0\u9875\u9762\n    async function translateAndUpdateBatch(list) {\n        try {\n            const textsToTranslate = list.flatMap(item => [item.location, item.detail]);\n            const translatedTexts = await translateTexts(textsToTranslate);\n\n            list.forEach(function(item, index) {\n                jQuery(`#location-${index}`).html(translatedTexts[index * 2]);\n                jQuery(`#detail-${index}`).html(addLinksToText(translatedTexts[index * 2 + 1]));\n            });\n        } catch (error) {\n            console.error('Translation error:', error);\n            list.forEach(function(item, index) {\n                jQuery(`#location-${index}`).html(item.location);\n                jQuery(`#detail-${index}`).html(addLinksToText(item.detail));\n            });\n        }\n    }\n\n\n    var translate = {\n        changeLanguage:  function(language) {\n            const languageMap = {\n                'english': 'en',\n                'deutsch': 'de',\n                'french': 'fr',\n                'spanish': 'es',\n                'italian': 'it',\n                'swedish': 'sv',\n                'dutch': 'nl',\n                'chinese_simplified': 'zh-Hans'\n            };\n            currentLanguage = languageMap[language] || 'en';\n            localStorage.setItem('Language', currentLanguage);\n            \/\/ \u91cd\u65b0\u6267\u884c\u67e5\u8be2\u4ee5\u66f4\u65b0\u7ffb\u8bd1\n            const list = jQuery('.track-list li').map(function(index, element) {\n                return {\n                    location: jQuery(`#location-${index}`).text(),\n                    detail: jQuery(`#detail-${index}`).text()\n                };\n            }).get();\n\n            if (list.length > 0) {\n                 list.forEach(function(item, index) {\n                    jQuery(`#location-${index}`).html('Translating...');\n                    jQuery(`#detail-${index}`).html('Translating...');\n                });\n                 translateAndUpdateBatch(list);\n            }\n        }\n    };\n    \n    async function translateTexts(texts) {\n        try {\n            const accessToken = await getAccessToken();\n            const response = await fetch(`https:\/\/api.cognitive.microsofttranslator.com\/translate?api-version=3.0&to=${currentLanguage}`, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'Authorization': `Bearer ${accessToken}`,\n                },\n                body: JSON.stringify(texts.map(text => ({ 'Text': text })))\n            });\n\n            const data = await response.json();\n            return data.map(item => item.translations[0].text);\n        } catch (error) {\n            console.error('Translation error:', error);\n            return texts; \/\/ \u5982\u679c\u7ffb\u8bd1\u5931\u8d25\uff0c\u8fd4\u56de\u539f\u59cb\u6587\u672c\u6570\u7ec4\n        }\n    }\n\n    async function getAccessToken() {\n        const response = await fetch('https:\/\/edge.microsoft.com\/translate\/auth');\n        const token = await response.text();\n        return token;\n    }\n    \n    \n    \n    jQuery(document).ready(function() {\n        \/\/ \u83b7\u53d6 URL \u4e2d\u7684\u53c2\u6570\n        var urlParams = new URLSearchParams(window.location.search);\n        var trackingNumber = urlParams.get('no');\n\n        if (trackingNumber) {\n            \/\/ \u8bbe\u7f6e\u8ffd\u8e2a\u53f7\u7801\u5230\u8f93\u5165\u6846\n            jQuery('#inputNo').val(trackingNumber);\n\n            \/\/ \u6267\u884c\u67e5\u8be2\u64cd\u4f5c\n            performTrackingQuery(trackingNumber);\n        }\n\n        \n    });\n    \n    \n    \n<\/script>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Logistik-Tracking-Nummer: Track-Sprache: Englisch | Deutsch | Franz\u00f6sisch | Spanisch | Italienisch | Svenska | Niederlande | \u7b80\u4f53\u4e2d\u6587<\/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":"","_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-9849","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/24hvape.com\/de\/wp-json\/wp\/v2\/pages\/9849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/24hvape.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/24hvape.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/24hvape.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/24hvape.com\/de\/wp-json\/wp\/v2\/comments?post=9849"}],"version-history":[{"count":0,"href":"https:\/\/24hvape.com\/de\/wp-json\/wp\/v2\/pages\/9849\/revisions"}],"wp:attachment":[{"href":"https:\/\/24hvape.com\/de\/wp-json\/wp\/v2\/media?parent=9849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}