{"id":32018,"date":"2026-11-06T11:54:57","date_gmt":"2026-11-06T03:54:57","guid":{"rendered":"https:\/\/serenadebikes.com\/"},"modified":"2026-11-06T12:03:57","modified_gmt":"2026-11-06T04:03:57","slug":"acompanhamento-de-encomendas","status":"publish","type":"page","link":"https:\/\/serenadebikes.com\/pt\/acompanhamento-de-encomendas\/","title":{"rendered":"Acompanhamento de encomendas"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"32018\" class=\"elementor elementor-32018\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-610986c e-flex e-con-boxed e-con e-parent\" data-id=\"610986c\" 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-f80b45e elementor-widget elementor-widget-shortcode\" data-id=\"f80b45e\" 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\">    <!-- \u8f09\u5165 FontAwesome \u8207 Tailwind CSS \u652f\u63f4 -->\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\r\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\r\n\r\n    <div class=\"serenade-tracking-wrap max-w-5xl mx-auto my-6 text-slate-700\">\r\n        <!-- \u641c\u5c0b\u5361\u7247 -->\r\n        <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200\/80 p-6 sm:p-8 mb-6\">\r\n            <label class=\"block text-xs font-bold uppercase tracking-wider text-slate-500 mb-3\">\r\n                Tracking Number or Order Number\r\n            <\/label>\r\n            <div class=\"relative\">\r\n                <textarea id=\"st-input-number\" rows=\"3\" class=\"w-full px-4 py-3 bg-slate-50\/50 border border-slate-200 rounded-xl text-slate-800 placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-sky-500 font-mono text-base resize-y\" placeholder=\"Enter tracking number or order number...\"><\/textarea>\r\n                <button type=\"button\" onclick=\"document.getElementById('st-input-number').value=''\" class=\"absolute top-3 right-3 text-xs font-medium text-slate-400 hover:text-slate-600 bg-slate-100 px-2.5 py-1 rounded-md\">Clear<\/button>\r\n            <\/div>\r\n\r\n            <div class=\"mt-4 flex flex-col sm:flex-row items-center justify-between gap-4\">\r\n                <div class=\"flex items-center gap-3 w-full sm:w-auto\">\r\n                    <button type=\"button\" onclick=\"stRunSearch()\" class=\"flex-1 sm:flex-none px-7 py-2.5 bg-sky-500 hover:bg-sky-600 text-white font-medium rounded-xl shadow-sm transition flex items-center justify-center gap-2\">\r\n                        <i class=\"fa-solid fa-magnifying-glass text-sm\"><\/i> Search\r\n                    <\/button>\r\n                <\/div>\r\n                <span class=\"text-xs text-slate-400\">Supported Carriers: DPD, DHL, FedEx, UPS & Custom Lines<\/span>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- \u8ffd\u8e64\u7d50\u679c\u5340 -->\r\n        <div id=\"st-result-container\" class=\"hidden bg-white rounded-2xl shadow-sm border border-slate-200\/80 overflow-hidden\">\r\n            <!-- \u6982\u8981\u9802\u6b04\uff1a4 \u6b04\u5b8c\u7f8e\u5c0d\u9f4a -->\r\n            <div class=\"p-6 bg-slate-50\/50 border-b border-slate-100 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-6\">\r\n                <div>\r\n                    <div class=\"text-xs font-medium text-slate-400 uppercase tracking-wide mb-1\">Tracking Number<\/div>\r\n                    <div id=\"st-res-tracking-no\" class=\"font-mono font-bold text-slate-800 text-base\">-<\/div>\r\n                <\/div>\r\n                <div>\r\n                    <div class=\"text-xs font-medium text-slate-400 uppercase tracking-wide mb-1\">Order Number<\/div>\r\n                    <div id=\"st-res-order-no\" class=\"font-semibold text-slate-800 text-base font-mono\">-<\/div>\r\n                <\/div>\r\n                <div>\r\n                    <div class=\"text-xs font-medium text-slate-400 uppercase tracking-wide mb-1\">Carrier<\/div>\r\n                    <div class=\"font-medium text-slate-800 flex items-center gap-1.5 mt-0.5\">\r\n                        <i class=\"fa-solid fa-truck-fast text-sky-500\"><\/i> <span id=\"st-carrier-name\">-<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n                <div>\r\n                    <div class=\"text-xs font-medium text-slate-400 uppercase tracking-wide mb-1\">Latest Status<\/div>\r\n                    <div id=\"st-res-status\" class=\"font-semibold text-slate-800 text-sm mt-0.5\">-<\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- \u6642\u9593\u8ef8\u660e\u7d30 -->\r\n            <div class=\"p-6 sm:p-8\">\r\n                <h4 class=\"text-xs font-bold uppercase tracking-wider text-slate-400 mb-6\">Tracking Details & Progress<\/h4>\r\n                <div id=\"st-timeline-list\" class=\"relative pl-6 sm:pl-8 space-y-8 before:absolute before:left-[11px] sm:before:left-[15px] before:top-3 before:bottom-3 before:w-[2px] before:bg-slate-200\">\r\n                    <!-- \u52d5\u614b\u7531 JS \u6e32\u67d3 -->\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- \u7121\u7d50\u679c\u63d0\u793a -->\r\n        <div id=\"st-no-result\" class=\"hidden bg-white rounded-2xl p-12 text-center border border-slate-200\">\r\n            <h3 class=\"text-slate-800 font-semibold text-lg\">No tracking records found<\/h3>\r\n            <p id=\"st-error-msg\" class=\"text-slate-500 text-sm mt-1\">Please check your tracking or order number and try again.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n    console.log(\"\u2705 [Serenade Tracking] JS Version 1.1.3 Loaded!\");\r\n\r\n    \/\/ \u6838\u5fc3\u641c\u7d22\u51fd\u6570\r\n    function stRunSearch() {\r\n        const orderNum = document.getElementById('st-input-number').value.trim();\r\n        if(!orderNum) return;\r\n\r\n        const formData = new FormData();\r\n        formData.append('action', 'st_search_tracking');\r\n        formData.append('order_number', orderNum);\r\n\r\n        fetch('https:\/\/serenadebikes.com\/wp-admin\/admin-ajax.php', {\r\n            method: 'POST',\r\n            body: formData,\r\n            cache: 'no-store'\r\n        })\r\n        .then(res => res.json())\r\n        .then(res => {\r\n            const container = document.getElementById('st-result-container');\r\n            const noResult = document.getElementById('st-no-result');\r\n\r\n            if(res.success) {\r\n                const data = res.data;\r\n                const details = data.trackingInfoDetails || [];\r\n                const latest = details[0] || {};\r\n\r\n                let foundDeliveryNum = data.deliveryNumber || latest.deliveryNumber;\r\n                if (!foundDeliveryNum) {\r\n                    for (let i = 0; i < details.length; i++) {\r\n                        if (details[i].deliveryNumber) {\r\n                            foundDeliveryNum = details[i].deliveryNumber;\r\n                            break;\r\n                        }\r\n                    }\r\n                }\r\n\r\n                const trackingNumberText = foundDeliveryNum || latest.insideNumber || data.orderNumber || '-';\r\n                \r\n                document.getElementById('st-res-tracking-no').textContent = trackingNumberText;\r\n                \/\/ \u5f3a\u5236\u663e\u793a\u641c\u7d22\u6846\u7684\u53f7\u7801\r\n                document.getElementById('st-res-order-no').textContent = orderNum;\r\n                document.getElementById('st-carrier-name').textContent = latest.deliveryCompany || 'Express';\r\n                document.getElementById('st-res-status').textContent = latest.description || latest.trackingStatus || 'In Transit';\r\n\r\n                \/\/ \u6e32\u67d3\u6642\u9593\u8ef8\r\n                let html = '';\r\n                details.forEach((item, index) => {\r\n                    const isLatest = index === 0;\r\n                    const iconBg = isLatest ? 'bg-sky-500 text-white' : 'bg-slate-200 text-slate-600';\r\n                    html += `\r\n                        <div class=\"relative group\">\r\n                            <div class=\"absolute -left-[31px] sm:-left-[39px] top-0.5 w-6 h-6 rounded-full ${iconBg} flex items-center justify-center text-xs\">\r\n                                <i class=\"fa-solid ${isLatest ? 'fa-plane-departure' : 'fa-check'} text-[10px]\"><\/i>\r\n                            <\/div>\r\n                            <div class=\"flex flex-col sm:flex-row sm:items-baseline justify-between gap-1\">\r\n                                <div>\r\n                                    <h5 class=\"${isLatest ? 'font-semibold text-slate-900 text-base' : 'font-medium text-slate-800 text-sm'}\">${item.description || item.trackingStatus}<\/h5>\r\n                                    <p class=\"text-xs text-slate-500 mt-0.5\">${item.location || ''}<\/p>\r\n                                <\/div>\r\n                                <div class=\"font-mono text-xs text-slate-400 whitespace-nowrap\">${item.createTime || ''}<\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                    `;\r\n                });\r\n                document.getElementById('st-timeline-list').innerHTML = html;\r\n\r\n                container.classList.remove('hidden');\r\n                noResult.classList.add('hidden');\r\n            } else {\r\n                document.getElementById('st-error-msg').textContent = res.data.message || 'No record found';\r\n                container.classList.add('hidden');\r\n                noResult.classList.remove('hidden');\r\n            }\r\n        })\r\n        .catch(err => {\r\n            console.error(\"Fetch error:\", err);\r\n        });\r\n    }\r\n\r\n    \/\/ \u3010\u65b0\u589e\u3011\u9875\u9762\u52a0\u8f7d\u65f6\u81ea\u52a8\u8bfb\u53d6 URL \u53c2\u6570\u5e76\u67e5\u8be2\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        const urlParams = new URLSearchParams(window.location.search);\r\n        \/\/ \u652f\u6301 ?order_number=xxx \u6216 ?order=xxx\r\n        let autoOrderNum = urlParams.get('order_number') || urlParams.get('order');\r\n\r\n        if (autoOrderNum) {\r\n            autoOrderNum = autoOrderNum.trim();\r\n            const inputEl = document.getElementById('st-input-number');\r\n            if (inputEl) {\r\n                \/\/ \u81ea\u52a8\u586b\u5165\u8f93\u5165\u6846\r\n                inputEl.value = autoOrderNum;\r\n                \/\/ \u7a0d\u5fae\u5ef6\u8fdf 300ms\uff0c\u786e\u4fdd Elementor\/WoodMart \u7b49\u4e3b\u9898\u7684 DOM \u6e32\u67d3\u5b8c\u6210\r\n                setTimeout(() => {\r\n                    stRunSearch();\r\n                }, 300);\r\n            }\r\n        }\r\n    });\r\n    <\/script>\r\n    <\/div>\n\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"footnotes":""},"class_list":["post-32018","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Order Tracking - Custom Carbon Fiber Wheels &amp; Bike Rims | Serenade Wheels<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/serenadebikes.com\/pt\/acompanhamento-de-encomendas\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Order Tracking\" \/>\n<meta property=\"og:url\" content=\"https:\/\/serenadebikes.com\/pt\/acompanhamento-de-encomendas\/\" \/>\n<meta property=\"og:site_name\" content=\"Custom Carbon Fiber Wheels &amp; Bike Rims | Serenade Wheels\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-06T04:03:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/serenadebikes.com\/wp-content\/uploads\/2026\/07\/25mm-inner-ARW-wheelset-with-carbon-spokes-e1785734599839.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"533\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/serenadebikes.com\\\/order-tracking\\\/\",\"url\":\"https:\\\/\\\/serenadebikes.com\\\/order-tracking\\\/\",\"name\":\"Order Tracking - Custom Carbon Fiber Wheels &amp; Bike Rims | Serenade Wheels\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/serenadebikes.com\\\/#website\"},\"datePublished\":\"2026-11-06T03:54:57+00:00\",\"dateModified\":\"2026-11-06T04:03:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/serenadebikes.com\\\/order-tracking\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/serenadebikes.com\\\/order-tracking\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/serenadebikes.com\\\/order-tracking\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\\\/\\\/serenadebikes.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Order Tracking\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/serenadebikes.com\\\/#website\",\"url\":\"https:\\\/\\\/serenadebikes.com\\\/\",\"name\":\"Custom Carbon Fiber Wheels &amp; Bike Rims | Serenade Wheels\",\"description\":\"Road bike wheels, mountain bicycle wheels, carbon rims, gravel wheels, carbon bike rims, carbon mountain bike,carbon road bike\",\"alternateName\":\"Carbon fiber wheelset design.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/serenadebikes.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Acompanhamento de encomendas - Jantes personalizadas em fibra de carbono para bicicletas | Serenade Wheels","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/serenadebikes.com\/pt\/acompanhamento-de-encomendas\/","og_locale":"pt_PT","og_type":"article","og_title":"Order Tracking","og_url":"https:\/\/serenadebikes.com\/pt\/acompanhamento-de-encomendas\/","og_site_name":"Custom Carbon Fiber Wheels &amp; Bike Rims | Serenade Wheels","article_modified_time":"2026-11-06T04:03:57+00:00","og_image":[{"width":800,"height":533,"url":"https:\/\/serenadebikes.com\/wp-content\/uploads\/2026\/07\/25mm-inner-ARW-wheelset-with-carbon-spokes-e1785734599839.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/serenadebikes.com\/order-tracking\/","url":"https:\/\/serenadebikes.com\/order-tracking\/","name":"Acompanhamento de encomendas - Jantes personalizadas em fibra de carbono para bicicletas | Serenade Wheels","isPartOf":{"@id":"https:\/\/serenadebikes.com\/#website"},"datePublished":"2026-11-06T03:54:57+00:00","dateModified":"2026-11-06T04:03:57+00:00","breadcrumb":{"@id":"https:\/\/serenadebikes.com\/order-tracking\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/serenadebikes.com\/order-tracking\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/serenadebikes.com\/order-tracking\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/serenadebikes.com\/"},{"@type":"ListItem","position":2,"name":"Order Tracking"}]},{"@type":"WebSite","@id":"https:\/\/serenadebikes.com\/#website","url":"https:\/\/serenadebikes.com\/","name":"Jantes e aros de bicicleta personalizados em fibra de carbono | Serenade Wheels","description":"Rodas para bicicletas de estrada, rodas para bicicletas de montanha, jantes de carbono, rodas para gravel, jantes de carbono para bicicletas, bicicleta de montanha em carbono, bicicleta de estrada em carbono","alternateName":"Carbon fiber wheelset design.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/serenadebikes.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"}]}},"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/serenadebikes.com\/pt\/wp-json\/wp\/v2\/pages\/32018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serenadebikes.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/serenadebikes.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/serenadebikes.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/serenadebikes.com\/pt\/wp-json\/wp\/v2\/comments?post=32018"}],"version-history":[{"count":8,"href":"https:\/\/serenadebikes.com\/pt\/wp-json\/wp\/v2\/pages\/32018\/revisions"}],"predecessor-version":[{"id":32027,"href":"https:\/\/serenadebikes.com\/pt\/wp-json\/wp\/v2\/pages\/32018\/revisions\/32027"}],"wp:attachment":[{"href":"https:\/\/serenadebikes.com\/pt\/wp-json\/wp\/v2\/media?parent=32018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}