{"id":4340,"date":"2026-02-28T17:28:21","date_gmt":"2026-02-28T09:28:21","guid":{"rendered":"https:\/\/phicycling.com\/aktivierung-garantie\/"},"modified":"2026-04-08T09:42:18","modified_gmt":"2026-04-08T01:42:18","slug":"aktivierung-garantie","status":"publish","type":"page","link":"https:\/\/phicycling.com\/de\/aktivierung-garantie\/","title":{"rendered":"Aktivierung &amp; Garantie"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4340\" class=\"elementor elementor-4340 elementor-2761\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8365112 e-flex e-con-boxed e-con e-parent\" data-id=\"8365112\" 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-85efb9d elementor-widget elementor-widget-shortcode\" data-id=\"85efb9d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div class=\"wc-hub-container\">\r\n            <style>\r\n                \/* \u2705 \u4f60\u539f\u6765\u7684\u6837\u5f0f\uff0c\u4e00\u5b57\u4e0d\u6539 *\/\r\n                .wc-hub-container {\r\n                    max-width: 1000px; margin: 40px auto;\r\n                    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\r\n                }\r\n                .wc-hub-header { text-align: center; margin-bottom: 40px; }\r\n                .wc-hub-header h2 { font-size: 28px; color: #2c3e50; margin-bottom: 10px; }\r\n                .wc-hub-header p { color: #7f8c8d; font-size: 16px; }\r\n    \r\n                .wc-hub-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }\r\n    \r\n                .wc-card {\r\n                    background: #ffffff;\r\n                    border: 1px solid #e5e5e5;\r\n                    border-radius: 8px;\r\n                    padding: 30px;\r\n                    box-shadow: 0 4px 12px rgba(0,0,0,0.05);\r\n                }\r\n                .wc-card h3 {\r\n                    margin-top: 0; color: #2c3e50;\r\n                    border-bottom: 2px solid #f0f0f0;\r\n                    padding-bottom: 15px; margin-bottom: 20px;\r\n                }\r\n                .wc-card p.desc {\r\n                    font-size: 14px; color: #666; margin-bottom: 25px; line-height: 1.5;\r\n                }\r\n    \r\n                .wc-form-group { margin-bottom: 20px; }\r\n                .wc-form-group label {\r\n                    display: block; margin-bottom: 8px;\r\n                    font-weight: 600; color: #34495e;\r\n                }\r\n                .wc-form-group input {\r\n                    width: 100%; padding: 12px;\r\n                    border: 1px solid #bdc3c7; border-radius: 4px;\r\n                    font-size: 16px; box-sizing: border-box;\r\n                }\r\n    \r\n                \/* \u2705 \u6781\u5c0f\u8865\u5145\uff08\u4e0d\u5f71\u54cd\u539f UI\uff09 *\/\r\n                .wc-barcode-row {\r\n                    display: flex; gap: 8px;\r\n                }\r\n                .wc-scan-btn {\r\n                    padding: 0 14px; font-size: 20px;\r\n                    border: none; border-radius: 4px;\r\n                    background: #27ae60; color: #fff;\r\n                }\r\n    \r\n                .wc-btn {\r\n                    width: 100%; padding: 14px;\r\n                    border: none; border-radius: 4px;\r\n                    font-size: 16px; font-weight: bold;\r\n                    color: #fff; cursor: pointer;\r\n                }\r\n                .btn-activate { background: #2c3e50; }\r\n                .btn-check { background: #3498db; }\r\n    \r\n                .wc-result {\r\n                    margin-top: 25px; padding: 20px;\r\n                    border-radius: 4px; display: none;\r\n                }\r\n                .res-success { background: #d4edda; color: #155724; }\r\n                .res-error { background: #f8d7da; color: #721c24; }\r\n                .res-info { background: #fff3cd; color: #856404; }\r\n    \r\n                @media (max-width: 768px) {\r\n                    .wc-hub-grid { grid-template-columns: 1fr; }\r\n                }\r\n    \r\n                \/* \u2705 \u626b\u7801\u5c42 *\/\r\n                #wcScanModal {\r\n                    display: none; position: fixed; inset: 0;\r\n                    background: #000; z-index: 99999;\r\n                    align-items: center; justify-content: center;\r\n                    flex-direction: column;\r\n                }\r\n                #wcScanBox {\r\n                    width: 90%; max-width: 400px;\r\n                    aspect-ratio: 4\/3;\r\n                    position: relative;\r\n                }\r\n            <\/style>\r\n    \r\n            <div class=\"wc-hub-header\">\r\n                <h2>Wheel Warranty Center<\/h2>\r\n                <p>Activate your new wheelset or check the status of an existing registration.<\/p>\r\n            <\/div>\r\n    \r\n            <div class=\"wc-hub-grid\">\r\n                <!-- \u6fc0\u6d3b -->\r\n                <div class=\"wc-card\">\r\n                    <h3>Activate Warranty<\/h3>\r\n                    <p class=\"desc\">Register your carbon wheelset to activate your official warranty.<\/p>\r\n    \r\n                    <form id=\"hub-activate-form\">\r\n                        <input type=\"hidden\" id=\"security\" name=\"security\" value=\"91855e33ca\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/de\/wp-json\/wp\/v2\/pages\/4340\" \/>    \r\n                        <div class=\"wc-form-group\">\r\n                            <label>Barcode \/ Serial Number<\/label>\r\n                            <div class=\"wc-barcode-row\">\r\n                                <input type=\"text\" id=\"ha-barcode\" name=\"barcode\" required>\r\n                                <button type=\"button\" class=\"wc-scan-btn\" onclick=\"wcStartScan('ha-barcode')\">\ud83d\udcf7<\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n    \r\n                        <div class=\"wc-form-group\">\r\n                            <label>Owner<\/label>\r\n                            <input type=\"text\" name=\"customer_name\" required>\r\n                        <\/div>\r\n    \r\n                        <div class=\"wc-form-group\">\r\n                            <label>Email<\/label>\r\n                            <input type=\"email\" name=\"customer_email\" required>\r\n                        <\/div>\r\n    \r\n                        <button class=\"wc-btn btn-activate\">Activate Warranty<\/button>\r\n                    <\/form>\r\n    \r\n                    <div id=\"hub-act-result\" class=\"wc-result\"><\/div>\r\n                <\/div>\r\n    \r\n                <!-- \u67e5\u8be2 -->\r\n                <div class=\"wc-card\">\r\n                    <h3>Check Status<\/h3>\r\n                    <p class=\"desc\">Enter your wheel barcode to verify activation status.<\/p>\r\n    \r\n                    <form id=\"hub-check-form\">\r\n                        <input type=\"hidden\" id=\"security\" name=\"security\" value=\"91855e33ca\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/de\/wp-json\/wp\/v2\/pages\/4340\" \/>    \r\n                        <div class=\"wc-form-group\">\r\n                            <label>Barcode \/ Serial Number<\/label>\r\n                            <div class=\"wc-barcode-row\">\r\n                                <input type=\"text\" id=\"hc-barcode\" name=\"barcode\" required>\r\n                                <button type=\"button\" class=\"wc-scan-btn\" onclick=\"wcStartScan('hc-barcode')\">\ud83d\udcf7<\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n    \r\n                        <button class=\"wc-btn btn-check\">Check Status<\/button>\r\n                    <\/form>\r\n    \r\n                    <div id=\"hub-chk-result\" class=\"wc-result\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n    \r\n            <!-- \u2705 \u626b\u7801\u5f39\u7a97 -->\r\n            <div id=\"wcScanModal\">\r\n                <button onclick=\"wcStopScan()\" style=\"position:absolute;top:20px;right:20px;padding:8px 14px;background:#fff;border:none;border-radius:4px;z-index:2;\">\r\n                    Close\r\n                <\/button>\r\n    \r\n                <div id=\"wcScanBox\"><\/div>\r\n    \r\n                <!-- \u2705 \u626b\u63cf\u6846\uff08\u53ea\u7ed9\u4eba\u770b\uff09 -->\r\n                <div style=\"position:absolute;pointer-events:none;\">\r\n                    <div style=\"position:absolute;inset:0;margin:auto;width:80%;height:140px;border:3px dashed #0f0;border-radius:6px;box-shadow:0 0 0 9999px rgba(0,0,0,.55);\"><\/div>\r\n                <\/div>\r\n    \r\n                <div style=\"position:absolute;bottom:40px;width:100%;text-align:center;color:#fff;font-size:14px;\">\r\n                    Align barcode within the frame\r\n                <\/div>\r\n            <\/div>\r\n    \r\n            <!-- \u2705 Quagga2\uff08\u7a33\u5b9a\u7248\uff09 -->\r\n            <script src=\"https:\/\/unpkg.com\/@ericblade\/quagga2\/dist\/quagga.min.js\"><\/script>\r\n    \r\n            <script>\r\n            let wcTargetInput = null;\r\n    \r\n            function wcStartScan(inputId) {\r\n                wcTargetInput = inputId;\r\n                document.getElementById('wcScanModal').style.display = 'flex';\r\n    \r\n                Quagga.init({\r\n                    inputStream: {\r\n                        type: 'LiveStream',\r\n                        target: document.querySelector('#wcScanBox'),\r\n                        constraints: {\r\n                            facingMode: 'environment',\r\n                            width: { min: 1280 },\r\n                            height: { min: 720 }\r\n                        }\r\n                    },\r\n                    decoder: {\r\n                        readers: ['code_128_reader']\r\n                    },\r\n                    locate: true,\r\n                    locateOptions: {\r\n                        hint: 'code_128',\r\n                        showPattern: false\r\n                    },\r\n                    numOfWorkers: 0 \/\/ \u2705 iOS \u5173\u952e\r\n                    \/\/ \u274c \u4e0d\u4f7f\u7528 area\r\n                }, function (err) {\r\n                    if (err) {\r\n                        console.error(err);\r\n                        return;\r\n                    }\r\n                    Quagga.start();\r\n                });\r\n    \r\n                Quagga.onDetected(function (result) {\r\n                    if (!result || !result.codeResult) return;\r\n                    document.getElementById(wcTargetInput).value = result.codeResult.code;\r\n                    wcStopScan();\r\n                });\r\n            }\r\n    \r\n            function wcStopScan() {\r\n                Quagga.stop();\r\n                document.getElementById('wcScanModal').style.display = 'none';\r\n            }\r\n            <\/script>\r\n    \r\n            <!-- \u2705 \u4f60\u539f\u6765\u7684 AJAX \u903b\u8f91\uff08\u5b8c\u5168\u4e0d\u52a8\uff09 -->\r\n            <script>\r\n            jQuery(document).ready(function($){\r\n    \r\n                $('#hub-activate-form').on('submit', function(e){\r\n                    e.preventDefault();\r\n                    var $btn = $('#btn-act-submit');\r\n                    var $res = $('#hub-act-result');\r\n    \r\n                    $btn.prop('disabled',true).text('Activating...');\r\n                    $res.hide();\r\n    \r\n                    $.post(\r\n                        'https:\/\/phicycling.com\/wp-admin\/admin-ajax.php',\r\n                        $(this).serialize()+'&action=wc_activate_wheel'\r\n                    ).done(function(res){\r\n                        $btn.prop('disabled',false).text('Activate Warranty');\r\n                        $res.show();\r\n                        if(res.success){\r\n                            $res.addClass('res-success').html(\r\n                                '<strong>\u2705 Activation Successful!<\/strong><br>'+\r\n                                res.data.message+'<br>'+\r\n                                '<div style=\"margin-top:10px;font-size:14px;\">'+\r\n                                '<strong>Start:<\/strong> '+res.data.start_date+' | '+\r\n                                '<strong>Expires:<\/strong> '+res.data.end_date+\r\n                                '<\/div>'\r\n                            );\r\n                            $('#hub-activate-form')[0].reset();\r\n                        }else{\r\n                            $res.addClass('res-error').html(res.data.message);\r\n                        }\r\n                    });\r\n                });\r\n    \r\n                $('#hub-check-form').on('submit', function(e){\r\n                    e.preventDefault();\r\n                    var $btn = $('#btn-chk-submit');\r\n                    var $res = $('#hub-chk-result');\r\n    \r\n                    $btn.prop('disabled',true).text('Checking...');\r\n                    $res.hide();\r\n    \r\n                    $.post(\r\n                        'https:\/\/phicycling.com\/wp-admin\/admin-ajax.php',\r\n                        $(this).serialize()+'&action=wc_check_warranty'\r\n                    ).done(function(res){\r\n                        $btn.prop('disabled',false).text('Check Status');\r\n                        $res.show();\r\n                        if(res.success){\r\n                            if(!res.data.active){\r\n                                $res.addClass('res-info').html('Not Activated');\r\n                            }else{\r\n                                $res.addClass(res.data.is_expired?'res-error':'res-success').html(\r\n                                    '<strong>'+res.data.status_label+'<\/strong><br>'+\r\n                                    'Owner: '+res.data.owner+'<br>'+\r\n                                    'Activated: '+res.data.activated_date+'<br>'+\r\n                                    'Expires: '+res.data.expiry_date\r\n                                );\r\n                            }\r\n                        }else{\r\n                            $res.addClass('res-error').html(res.data.message);\r\n                        }\r\n                    });\r\n                });\r\n    \r\n            });\r\n            <\/script>\r\n        <\/div>\r\n        <\/div>\n\t\t\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":{"footnotes":""},"class_list":["post-4340","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/phicycling.com\/de\/wp-json\/wp\/v2\/pages\/4340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/phicycling.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/phicycling.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/phicycling.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phicycling.com\/de\/wp-json\/wp\/v2\/comments?post=4340"}],"version-history":[{"count":1,"href":"https:\/\/phicycling.com\/de\/wp-json\/wp\/v2\/pages\/4340\/revisions"}],"predecessor-version":[{"id":4342,"href":"https:\/\/phicycling.com\/de\/wp-json\/wp\/v2\/pages\/4340\/revisions\/4342"}],"wp:attachment":[{"href":"https:\/\/phicycling.com\/de\/wp-json\/wp\/v2\/media?parent=4340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}