{"id":476,"date":"2026-04-29T19:35:42","date_gmt":"2026-04-29T11:35:42","guid":{"rendered":"https:\/\/blade-legend.com\/?page_id=476"},"modified":"2026-04-29T19:35:42","modified_gmt":"2026-04-29T11:35:42","slug":"bltrack","status":"publish","type":"page","link":"https:\/\/blade-legend.com\/?page_id=476","title":{"rendered":"BLTrack"},"content":{"rendered":"        <div class=\"bl-tracking-wrapper\">\r\n            <!-- \u4e0a\u90e8\u5206\uff1a\u56fe\u6807 + \u6807\u9898 -->\r\n            <div class=\"bl-tracking-header\">\r\n                <div class=\"bl-header-icon\">\r\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" width=\"48\" height=\"48\">\r\n                        <path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/>\r\n                        <polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"\/>\r\n                        <line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"\/>\r\n                    <\/svg>\r\n                <\/div>\r\n                <div class=\"bl-header-title\">Track Your Order<\/div>\r\n                <p class=\"bl-header-subtitle\">Enter your email to find your shipping tracking info<\/p>\r\n            <\/div>\r\n\r\n            <!-- \u4e2d\u95f4\u90e8\u5206\uff1a\u641c\u7d22\u6846 -->\r\n            <div class=\"bl-tracking-search-form\">\r\n                <div class=\"bl-search-input-wrap\">\r\n                    <span class=\"bl-input-icon\">\r\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"18\" height=\"18\">\r\n                            <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/>\r\n                            <polyline points=\"22,6 12,13 2,6\"\/>\r\n                        <\/svg>\r\n                    <\/span>\r\n                    <input type=\"email\" id=\"bl-search-email\" class=\"bl-search-input\"\r\n                           placeholder=\"Enter your email address\"\r\n                           autocomplete=\"off\"\r\n                           onkeydown=\"if(event.key==='Enter'){blDoSearch();return false;}\">\r\n                    <button class=\"bl-search-btn\" id=\"bl-search-btn\" onclick=\"blDoSearch()\">\r\n                        <span class=\"bl-btn-text\">Search<\/span>\r\n                        <span class=\"bl-btn-loading\" style=\"display:none;\">\r\n                            <svg class=\"bl-spinner\" viewBox=\"0 0 24 24\" width=\"18\" height=\"18\">\r\n                                <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"3\" fill=\"none\" stroke-dasharray=\"31.4 31.4\" stroke-linecap=\"round\"\/>\r\n                            <\/svg>\r\n                        <\/span>\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- \u4e0b\u90e8\u5206\uff1a\u641c\u7d22\u7ed3\u679c -->\r\n            <div id=\"bl-tracking-result\" style=\"display:none;\"><\/div>\r\n        <\/div>\r\n\r\n        <script>\r\n        var blAjaxUrl = 'https:\/\/blade-legend.com\/wp-admin\/admin-ajax.php';\r\n        var blNonce = '44dc3dbc24';\r\n\r\n        function blDoSearch() {\r\n            var input = document.getElementById('bl-search-email');\r\n            var value = input ? input.value.trim() : '';\r\n            if (!value) return;\r\n\r\n            var btn = document.getElementById('bl-search-btn');\r\n            var btnText = btn.querySelector('.bl-btn-text');\r\n            var btnLoading = btn.querySelector('.bl-btn-loading');\r\n            var result = document.getElementById('bl-tracking-result');\r\n\r\n            if (btnText) btnText.style.display = 'none';\r\n            if (btnLoading) btnLoading.style.display = 'flex';\r\n            btn.disabled = true;\r\n            result.style.display = 'none';\r\n\r\n            var xhr = new XMLHttpRequest();\r\n            xhr.open('POST', blAjaxUrl, true);\r\n            xhr.setRequestHeader('Content-Type', 'application\/x-www-form-urlencoded');\r\n            xhr.onload = function() {\r\n                if (btnText) btnText.style.display = '';\r\n                if (btnLoading) btnLoading.style.display = 'none';\r\n                btn.disabled = false;\r\n\r\n                if (xhr.status === 200) {\r\n                    try {\r\n                        var resp = JSON.parse(xhr.responseText);\r\n                        var html = '';\r\n                        var resultCount = resp.data.data.length;\r\n                        if (resultCount > 1) {\r\n                            html += '<div class=\"bl-results-count\">' + resultCount + ' tracking records found<\/div>';\r\n                        }\r\n                        html += '<div class=\"bl-results-list\">';\r\n                        if (resp.success && resp.data && resp.data.data && resp.data.data.length > 0) {\r\n                            resp.data.data.forEach(function(item) {\r\n                                html += '<div class=\"bl-result-card card\">';\r\n                                html += '<div class=\"card-header\"><h5 class=\"mb-0\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" width=\"18\" height=\"18\" style=\"vertical-align:middle;margin-right:8px;\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><path d=\"M22 4L12 14.01l-3-3\"\/><\/svg>Search Result<\/h5><\/div>';\r\n                                html += '<div class=\"card-body\">';\r\n                                if (item.order) html += '<div class=\"bl-info-row\"><span class=\"bl-info-label\">Order<\/span><span class=\"bl-info-value bl-info-order\">' + item.order + '<\/span><\/div>';\r\n                                if (item.date) {\r\n                                    var dateStr = item.date;\r\n                                    var dateFormatted = dateStr ? dateStr.split(' ')[0] : '';\r\n                                    html += '<div class=\"bl-info-row\"><span class=\"bl-info-label\">Imported Date<\/span><span class=\"bl-info-value\">' + dateFormatted + '<\/span><\/div>';\r\n                                }\r\n                                if (item.name) html += '<div class=\"bl-info-row\"><span class=\"bl-info-label\">Name<\/span><span class=\"bl-info-value\">' + item.name + '<\/span><\/div>';\r\n                                if (item.shipper) html += '<div class=\"bl-info-row\"><span class=\"bl-info-label\">Shipper<\/span><span class=\"bl-info-value\">' + item.shipper + '<\/span><\/div>';\r\n                                if (item.email) html += '<div class=\"bl-info-row\"><span class=\"bl-info-label\">Email<\/span><span class=\"bl-info-value\">' + item.email + '<\/span><\/div>';\r\n                                if (item.method) html += '<div class=\"bl-info-row\"><span class=\"bl-info-label\">Method<\/span><span class=\"bl-info-value\">' + item.method + '<\/span><\/div>';\r\n                                if (item.tracking) {\r\n                                    html += '<div class=\"bl-info-row\"><span class=\"bl-info-label\">Tracking Number<\/span>';\r\n                                    html += '<span class=\"bl-info-value\"><span class=\"bl-tracking-code\" id=\"bl-tc-' + item.tracking + '\">' + item.tracking + '<\/span> ';\r\n                                    html += '<button class=\"bl-copy-btn\" onclick=\"blCopyTracking(\\'' + item.tracking + '\\')\" title=\"Copy\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"16\" height=\"16\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"\/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\/><\/svg><\/button>';\r\n                                    html += '<div class=\"bl-tracking-note\">Please copy this tracking number and check it on <a href=\"https:\/\/www.17track.net\" target=\"_blank\" rel=\"noopener\">www.17track.net<\/a> or any other international package tracking site.<\/div>';\r\n                                    html += '<\/span><\/div>';\r\n                                }\r\n                                html += '<\/div><\/div>';\r\n                            });\r\n                        } else {\r\n                            html = '<div class=\"bl-no-results\"><h5 class=\"bl-no-results-title\">No results found<\/h5><p>No tracking information found for your search. Please check your input and try again, make sure to use the email you submitted to the survey. If you sure the email is correct please contact us <a href=\"mailto:help@blade-legend.com\">help@blade-legend.com<\/a><\/p><\/div>';\r\n                        }\r\n                        html += '<\/div>';\r\n                        result.innerHTML = html;\r\n                    } catch(e) {\r\n                        result.innerHTML = '<div class=\"bl-error-msg\">An error occurred. Please try again.<\/div>';\r\n                    }\r\n                } else {\r\n                    result.innerHTML = '<div class=\"bl-error-msg\">Request failed. Please try again.<\/div>';\r\n                }\r\n                result.style.display = 'block';\r\n                result.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\r\n            };\r\n            xhr.onerror = function() {\r\n                if (btnText) btnText.style.display = '';\r\n                if (btnLoading) btnLoading.style.display = 'none';\r\n                btn.disabled = false;\r\n                result.innerHTML = '<div class=\"bl-error-msg\">Network error. Please try again.<\/div>';\r\n                result.style.display = 'block';\r\n            };\r\n            xhr.send('action=bl_track_search&security=' + encodeURIComponent(blNonce) + '&search_type=email&email=' + encodeURIComponent(value));\r\n        }\r\n\r\n        function blCopyTracking(tracking) {\r\n            navigator.clipboard.writeText(tracking).then(function() {\r\n                var btn = document.querySelector('#bl-tc-' + tracking + ' + .bl-copy-btn');\r\n                if (btn) {\r\n                    btn.innerHTML = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"16\" height=\"16\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>';\r\n                    setTimeout(function() { btn.innerHTML = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"16\" height=\"16\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"\/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\/><\/svg>'; }, 1500);\r\n                }\r\n            });\r\n        }\r\n        <\/script>\r\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-476","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blade-legend.com\/index.php?rest_route=\/wp\/v2\/pages\/476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blade-legend.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blade-legend.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blade-legend.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blade-legend.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=476"}],"version-history":[{"count":1,"href":"https:\/\/blade-legend.com\/index.php?rest_route=\/wp\/v2\/pages\/476\/revisions"}],"predecessor-version":[{"id":477,"href":"https:\/\/blade-legend.com\/index.php?rest_route=\/wp\/v2\/pages\/476\/revisions\/477"}],"wp:attachment":[{"href":"https:\/\/blade-legend.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}