{"id":8059,"date":"2026-04-02T19:51:27","date_gmt":"2026-04-02T11:51:27","guid":{"rendered":"https:\/\/sovboi.com\/?page_id=8059"},"modified":"2026-05-12T19:19:54","modified_gmt":"2026-05-12T11:19:54","slug":"warranty","status":"publish","type":"page","link":"https:\/\/sovboi.com\/en_ca\/warranty\/","title":{"rendered":"warranty"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"8059\" class=\"elementor elementor-8059\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-124dc1c e-flex e-con-boxed e-con e-parent\" data-id=\"124dc1c\" data-element_type=\"container\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e6f5498 elementor-widget elementor-widget-heading\" data-id=\"e6f5498\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.20.0 - 26-03-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h2 class=\"elementor-heading-title elementor-size-default\">Activate Your 3-Year Warranty!<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-afb6def e-flex e-con-boxed e-con e-child\" data-id=\"afb6def\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ed2da23 elementor-widget elementor-widget-heading\" data-id=\"ed2da23\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Enjoy Sovboi Projector Without Worries!<\/h5>\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<div class=\"elementor-element elementor-element-5f3af74 e-con-full e-flex e-con e-child\" data-id=\"5f3af74\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-094b844 e-con-full e-flex e-con e-child\" data-id=\"094b844\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0d66e4d elementor-invisible elementor-widget elementor-widget-image\" data-id=\"0d66e4d\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.20.0 - 26-03-2024 *\/\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"1200\" src=\"https:\/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-1200x1200.webp\" class=\"attachment-large size-large wp-image-6708\" alt=\"\" srcset=\"\/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-1200x1200.webp 1200w, \/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-500x500.webp 500w, \/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-100x100.webp 100w, \/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-700x700.webp 700w, \/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-300x300.webp 300w, \/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-768x768.webp 768w, \/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-1536x1536.webp 1536w, \/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-12x12.webp 12w, \/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13.webp 1563w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bc37e99 e-con-full e-flex e-con e-child\" data-id=\"bc37e99\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c3e0872 elementor-widget elementor-widget-html\" data-id=\"c3e0872\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Warranty Activation<\/title>\n<style>\n  :root {\n    --wf-border: #d9d9d9;\n    --wf-label: #1f2937;\n    --wf-sub: #6b7280;\n    --wf-muted: #9ca3af;\n    --wf-error: #dc2626;\n    --wf-ok: #16a34a;\n    --wf-btn: #ef4d48;\n    --wf-btn-disabled: #d1d5db;\n    --wf-star: #d4d4d4;\n    --wf-star-active: #fbbf24;\n    --wf-asterisk: #ef4d48;\n  }\n  .wf-wrap { max-width: 820px; margin: 0 auto; padding: 24px 16px; font-family: -apple-system, sans-serif, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif; color: #111827; }\n  \/* Reset against WordPress theme overrides *\/\n  .wf-wrap *, .wf-wrap *::before, .wf-wrap *::after { box-sizing: border-box; }\n  .wf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }\n  .wf-field { display: flex; flex-direction: column; }\n  .wf-field label { font-weight: 700; font-size: 16px; color: var(--wf-label); margin-bottom: 8px; }\n  .wf-field .req { color: var(--wf-asterisk); }\n  .wf-wrap .wf-field input[type=\"text\"],\n  .wf-wrap .wf-field input[type=\"email\"] {\n    box-sizing: border-box !important;\n    width: 100% !important;\n    height: 44px !important;\n    padding: 0 12px !important;\n    border: 1px solid var(--wf-border) !important;\n    border-radius: 8px !important;\n    font-size: 15px !important;\n    color: #111827 !important;\n    background: #fff !important;\n    outline: none !important;\n    box-shadow: none !important;\n    transition: border-color .15s ease, box-shadow .15s ease !important;\n  }\n  .wf-wrap .wf-field input::placeholder { color: var(--wf-muted) !important; opacity: 1 !important; }\n  .wf-wrap .wf-field input:focus {\n    border-color: #6b7280 !important;\n    box-shadow: 0 0 0 3px rgba(107,114,128,.12) !important;\n  }\n  .wf-wrap .wf-field input.wf-invalid { border-color: var(--wf-error) !important; }\n\n  \/* Order-number masked input: keep ___-_______-_______ visible while typing *\/\n  .wf-wrap .wf-field .wf-mask { position: relative !important; }\n  .wf-wrap .wf-field .wf-mask .wf-mask-input {\n    font-family: \"SF Mono\", Menlo, Consolas, monospace !important;\n    letter-spacing: 1px !important;\n    background: transparent !important;\n    position: relative !important;\n    z-index: 1 !important;\n  }\n  .wf-wrap .wf-field .wf-mask .wf-mask-overlay {\n    position: absolute !important;\n    top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;\n    padding: 0 13px !important;\n    display: flex !important;\n    align-items: center !important;\n    font: 15px \"SF Mono\", Menlo, Consolas, monospace !important;\n    letter-spacing: 1px !important;\n    white-space: pre !important;\n    pointer-events: none !important;\n    z-index: 0 !important;\n    border: 1px solid transparent !important;\n    border-radius: 8px !important;\n    margin: 0 !important;\n  }\n  .wf-wrap .wf-field .wf-mask .wf-mask-spacer { color: transparent !important; }\n  .wf-wrap .wf-field .wf-mask .wf-mask-tail { color: var(--wf-muted) !important; }\n\n  .wf-hint { min-height: 18px; font-size: 13px; margin-top: 4px; color: var(--wf-error); }\n  .wf-helper-link { margin-top: 4px; font-size: 13px; line-height: 1.2; }\n  .wf-helper-link a { color: var(--wf-sub); text-decoration: underline; }\n  .wf-helper-link a:hover { color: var(--wf-btn); }\n  .wf-stars { display: inline-flex; gap: 6px; margin-top: 4px; }\n  .wf-star { cursor: pointer; width: 28px; height: 28px; color: var(--wf-star); transition: color .15s ease, transform .15s ease; }\n  .wf-star.active { color: var(--wf-star-active); }\n  .wf-star:hover { transform: scale(1.1); }\n\n  .wf-submit-wrap { margin-top: 28px; display: flex; justify-content: center; }\n  .wf-submit {\n    width: 50%;\n    min-width: 200px;\n    height: 56px;\n    border: 0; border-radius: 8px;\n    background: var(--wf-btn-disabled);\n    color: #fff;\n    font-size: 20px;\n    font-weight: 700;\n    letter-spacing: .3px;\n    cursor: not-allowed;\n    transition: background-color .15s ease;\n  }\n  .wf-submit.enabled { background: var(--wf-btn); cursor: pointer; }\n  .wf-submit.enabled:hover { background: #d94340; }\n\n  .wf-global-error { margin-top: 16px; color: var(--wf-error); font-size: 14px; background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 10px 14px; }\n  .wf-global-error ul { margin: 4px 0 0 18px; padding: 0; }\n  .wf-thanks { text-align: center; padding: 48px 16px; }\n  .wf-thanks svg { width: 64px; height: 64px; color: var(--wf-ok); }\n  .wf-thanks h2 { margin: 16px 0 8px; font-size: 24px; }\n  .wf-thanks p { color: var(--wf-sub); }\n\n  @media (max-width: 640px) {\n    .wf-grid { grid-template-columns: 1fr; }\n    .wf-submit { width: 80%; }\n  }\n<\/style>\n<\/head>\n<body>\n<div class=\"wf-wrap\">\n  <div id=\"warranty-form-root\">\n    <div class=\"wf-grid\">\n      <div class=\"wf-field\">\n        <label>\n          <span data-t=\"orderNumber\">Order Number<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <div class=\"wf-mask\">\n          <input type=\"text\" id=\"wf-order\" class=\"wf-mask-input\" inputmode=\"numeric\" maxlength=\"19\" autocomplete=\"off\" spellcheck=\"false\">\n          <div class=\"wf-mask-overlay\" aria-hidden=\"true\"><span class=\"wf-mask-spacer\" id=\"wf-mask-spacer\"><\/span><span class=\"wf-mask-tail\" id=\"wf-mask-tail\">XXX-XXXXXXX-XXXXXXX<\/span><\/div>\n        <\/div>\n        <div class=\"wf-helper-link\">\n          <a id=\"wf-find-order\" href=\"#\" target=\"_blank\" rel=\"noopener\" data-t=\"findOrder\">How to find my order number?<\/a>\n        <\/div>\n        <div class=\"wf-hint\" id=\"wf-order-hint\"><\/div>\n      <\/div>\n      <div class=\"wf-field\">\n        <label>\n          <span data-t=\"email\">Email<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <input type=\"email\" name=\"email\" id=\"wf-email\" autocomplete=\"email\">\n        <div class=\"wf-hint\" id=\"wf-email-hint\"><\/div>\n      <\/div>\n      <div class=\"wf-field\">\n        <label>\n          <span data-t=\"name\">Name<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <input type=\"text\" name=\"name\" id=\"wf-name\" maxlength=\"50\" autocomplete=\"name\">\n        <div class=\"wf-hint\" id=\"wf-name-hint\"><\/div>\n      <\/div>\n      <div class=\"wf-field\">\n        <label>\n          <span data-t=\"rating\">How do you feel about our product?<\/span> <span class=\"req\">*<\/span>\n        <\/label>\n        <div class=\"wf-stars\" id=\"wf-stars\" role=\"radiogroup\" aria-label=\"rating\"><\/div>\n        <div class=\"wf-hint\" id=\"wf-rating-hint\"><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"wf-global-error\" id=\"wf-global-error\" hidden><\/div>\n    <div class=\"wf-submit-wrap\">\n      <button type=\"button\" class=\"wf-submit\" id=\"wf-submit\" disabled data-t=\"submit\">Submit<\/button>\n    <\/div>\n  <\/div>\n\n  <div id=\"warranty-form-thanks\" class=\"wf-thanks\" hidden>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewbox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\/><\/svg>\n    <h2 data-t=\"thanksTitle\">Thank you!<\/h2>\n    <p data-t=\"thanksBody\">Your warranty has been activated successfully.<\/p>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  \/\/ \u9ed8\u8ba4\u7a7a = \u540c\u6e90\u76f8\u5bf9\u8def\u5f84\uff0c\u81ea\u52a8\u8ddf\u968f\u5f53\u524d WP \u7ad9\u70b9\u57df\u540d\uff08lisowod.com \/ onoayo.net \u2026\uff09\n  \/\/ \u53ef\u901a\u8fc7 window.WF_API_BASE \u663e\u5f0f\u8986\u76d6\uff08\u6bd4\u5982\u672c\u5730\u9884\u89c8\u8de8\u57df\u5230\u751f\u4ea7\uff09\n  var API_BASE = (typeof window !== 'undefined' && window.WF_API_BASE) || '';\n\n  var DICT = {\n    en: {\n      orderNumber: 'Order Number', email: 'Email', name: 'Name',\n      rating: 'How do you feel about our product?', submit: 'Submit',\n      thanksTitle: 'Thank you!', thanksBody: 'Your warranty has been activated successfully.',\n      findOrder: 'How to find my order number?',\n      errFormat: 'Invalid order number. Expected format: XXX-XXXXXXX-XXXXXXX.',\n      errEmail: 'Please enter a valid email address.',\n      errName: 'Please enter your name.',\n      errRating: 'Please select a star rating.',\n      errNotShipped: 'Please activate after receiving your product.',\n      errRefunded: 'Your order has been refunded and is not covered by the warranty policy.',\n      errAlreadyActivated: 'Your order has already been activated.',\n      errReviewOrder: 'Test activity orders have automatically activated one-year warranty, no manual activation required',\n      errMissingTitle: 'Please complete the following fields:',\n      errSubmitFailed: 'Submission failed. Please try again later.',\n      errNetwork: 'Network error. Please check your connection.'\n    },\n    ja: {\n      orderNumber: '\u6ce8\u6587\u756a\u53f7', email: '\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9', name: '\u304a\u540d\u524d',\n      rating: '\u88fd\u54c1\u306e\u3054\u611f\u60f3\u3092\u304a\u805e\u304b\u305b\u304f\u3060\u3055\u3044', submit: '\u9001\u4fe1',\n      thanksTitle: '\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01', thanksBody: '\u4fdd\u8a3c\u304c\u6b63\u5e38\u306b\u6709\u52b9\u5316\u3055\u308c\u307e\u3057\u305f\u3002',\n      findOrder: '\u6ce8\u6587\u756a\u53f7\u306f\u3069\u3053\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\u304b\uff1f',\n      errFormat: '\u6ce8\u6587\u756a\u53f7\u306e\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002XXX-XXXXXXX-XXXXXXX \u306e\u5f62\u5f0f\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errEmail: '\u6709\u52b9\u306a\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errName: '\u304a\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errRating: '\u661f\u8a55\u4fa1\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errNotShipped: '\u5546\u54c1\u3092\u53d7\u3051\u53d6\u3063\u3066\u304b\u3089\u6709\u52b9\u5316\u3057\u3066\u304f\u3060\u3055\u3044\u3002',\n      errRefunded: '\u3054\u6ce8\u6587\u306f\u8fd4\u91d1\u6e08\u307f\u306e\u305f\u3081\u3001\u4fdd\u8a3c\u306e\u5bfe\u8c61\u5916\u3067\u3059\u3002',\n      errAlreadyActivated: '\u3053\u306e\u3054\u6ce8\u6587\u306f\u3059\u3067\u306b\u6709\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002',\n      errReviewOrder: '\u3053\u3061\u3089\u306e\u3054\u6ce8\u6587\u306f\u30ec\u30d3\u30e5\u30fc\u4f01\u753b\u7528\u306e\u305f\u3081\u3001\u4fdd\u8a3c\u306e\u6709\u52b9\u5316\u306f\u3067\u304d\u307e\u305b\u3093\u3002',\n      errMissingTitle: '\u4ee5\u4e0b\u306e\u9805\u76ee\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\uff1a',\n      errSubmitFailed: '\u9001\u4fe1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u3057\u3066\u304b\u3089\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002',\n      errNetwork: '\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u63a5\u7d9a\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002'\n    },\n    es: {\n      orderNumber: 'N\u00famero de pedido', email: 'Correo electr\u00f3nico', name: 'Nombre',\n      rating: '\u00bfQu\u00e9 opinas de nuestro producto?', submit: 'Enviar',\n      thanksTitle: '\u00a1Gracias!', thanksBody: 'Tu garant\u00eda se ha activado correctamente.',\n      findOrder: '\u00bfC\u00f3mo encontrar mi n\u00famero de pedido?',\n      errFormat: 'N\u00famero de pedido no v\u00e1lido. Formato esperado: XXX-XXXXXXX-XXXXXXX.',\n      errEmail: 'Introduce una direcci\u00f3n de correo v\u00e1lida.',\n      errName: 'Introduce tu nombre.',\n      errRating: 'Selecciona una valoraci\u00f3n.',\n      errNotShipped: 'Por favor, act\u00edvalo despu\u00e9s de recibir tu producto.',\n      errRefunded: 'Tu pedido ha sido reembolsado y no est\u00e1 cubierto por la garant\u00eda.',\n      errAlreadyActivated: 'Tu pedido ya ha sido activado.',\n      errReviewOrder: 'Este pedido est\u00e1 marcado como pedido de campa\u00f1a de rese\u00f1as y no se puede activar aqu\u00ed.',\n      errMissingTitle: 'Por favor, completa los siguientes campos:',\n      errSubmitFailed: 'Error al enviar. Int\u00e9ntalo m\u00e1s tarde.',\n      errNetwork: 'Error de red. Comprueba tu conexi\u00f3n.'\n    },\n    de: {\n      orderNumber: 'Bestellnummer', email: 'E-Mail', name: 'Name',\n      rating: 'Wie gef\u00e4llt Ihnen unser Produkt?', submit: 'Absenden',\n      thanksTitle: 'Vielen Dank!', thanksBody: 'Ihre Garantie wurde erfolgreich aktiviert.',\n      findOrder: 'Wie finde ich meine Bestellnummer?',\n      errFormat: 'Ung\u00fcltige Bestellnummer. Erwartetes Format: XXX-XXXXXXX-XXXXXXX.',\n      errEmail: 'Bitte geben Sie eine g\u00fcltige E-Mail-Adresse ein.',\n      errName: 'Bitte geben Sie Ihren Namen ein.',\n      errRating: 'Bitte w\u00e4hlen Sie eine Sterne-Bewertung.',\n      errNotShipped: 'Bitte aktivieren Sie nach Erhalt Ihres Produkts.',\n      errRefunded: 'Ihre Bestellung wurde erstattet und ist nicht durch die Garantie abgedeckt.',\n      errAlreadyActivated: 'Ihre Bestellung wurde bereits aktiviert.',\n      errReviewOrder: 'Diese Bestellung ist als Review-Kampagnen-Bestellung markiert und kann hier nicht aktiviert werden.',\n      errMissingTitle: 'Bitte f\u00fcllen Sie die folgenden Felder aus:',\n      errSubmitFailed: 'Senden fehlgeschlagen. Bitte versuchen Sie es sp\u00e4ter erneut.',\n      errNetwork: 'Netzwerkfehler. Bitte pr\u00fcfen Sie Ihre Verbindung.'\n    },\n    fr: {\n      orderNumber: 'Num\u00e9ro de commande', email: 'E-mail', name: 'Nom',\n      rating: 'Que pensez-vous de notre produit ?', submit: 'Envoyer',\n      thanksTitle: 'Merci !', thanksBody: 'Votre garantie a \u00e9t\u00e9 activ\u00e9e avec succ\u00e8s.',\n      findOrder: 'Comment trouver mon num\u00e9ro de commande ?',\n      errFormat: 'Num\u00e9ro de commande invalide. Format attendu : XXX-XXXXXXX-XXXXXXX.',\n      errEmail: 'Veuillez saisir une adresse e-mail valide.',\n      errName: 'Veuillez saisir votre nom.',\n      errRating: 'Veuillez s\u00e9lectionner une note en \u00e9toiles.',\n      errNotShipped: 'Veuillez activer apr\u00e8s r\u00e9ception de votre produit.',\n      errRefunded: 'Votre commande a \u00e9t\u00e9 rembours\u00e9e et n\\'est pas couverte par la garantie.',\n      errAlreadyActivated: 'Votre commande a d\u00e9j\u00e0 \u00e9t\u00e9 activ\u00e9e.',\n      errReviewOrder: 'Cette commande est marqu\u00e9e comme commande de campagne de test et ne peut pas \u00eatre activ\u00e9e ici.',\n      errMissingTitle: 'Veuillez remplir les champs suivants :',\n      errSubmitFailed: '\u00c9chec de l\\'envoi. Veuillez r\u00e9essayer plus tard.',\n      errNetwork: 'Erreur r\u00e9seau. Veuillez v\u00e9rifier votre connexion.'\n    }\n  };\n\n  var LANG_MAP = { ja: 'ja', es: 'es', de: 'de', fr: 'fr' };\n  var seg = (location.pathname.split('\/').filter(Boolean)[0] || '').toLowerCase();\n  var urlLang = new URLSearchParams(location.search).get('lang');\n  var lang = (urlLang && DICT[urlLang]) ? urlLang : (LANG_MAP[seg] || 'en');\n  var T = DICT[lang] || DICT.en;\n\n  document.querySelectorAll('[data-t]').forEach(function (el) {\n    var key = el.getAttribute('data-t');\n    if (T[key]) el.textContent = T[key];\n  });\n\n  var LOCALE_PREFIXES = ['ja', 'es', 'de', 'fr', 'ca', 'uk'];\n  var $findLink = document.getElementById('wf-find-order');\n  if ($findLink) {\n    var firstSeg = (location.pathname.split('\/').filter(Boolean)[0] || '').toLowerCase();\n    var localePrefix = LOCALE_PREFIXES.indexOf(firstSeg) >= 0 ? '\/' + firstSeg : '';\n    $findLink.href = location.origin + localePrefix + '\/findid';\n  }\n\n  var $order = document.getElementById('wf-order');\n  var $email = document.getElementById('wf-email');\n  var $name = document.getElementById('wf-name');\n  var $stars = document.getElementById('wf-stars');\n  var $orderHint = document.getElementById('wf-order-hint');\n  var $emailHint = document.getElementById('wf-email-hint');\n  var $nameHint = document.getElementById('wf-name-hint');\n  var $ratingHint = document.getElementById('wf-rating-hint');\n  var $submit = document.getElementById('wf-submit');\n  var $globalError = document.getElementById('wf-global-error');\n  var $root = document.getElementById('warranty-form-root');\n  var $thanks = document.getElementById('warranty-form-thanks');\n\n  \/\/ -------- Order auto-format + mask ghost overlay --------\n  var $maskSpacer = document.getElementById('wf-mask-spacer');\n  var $maskTail = document.getElementById('wf-mask-tail');\n  var DASH_AT = { 3: true, 11: true };\n\n  function formatOrderValue(raw) {\n    var digits = String(raw || '').replace(\/\\D\/g, '').slice(0, 17);\n    var out = '';\n    for (var i = 0; i < digits.length; i++) {\n      if (i === 3 || i === 10) out += '-';\n      out += digits[i];\n    }\n    return out;\n  }\n  function renderMask() {\n    var typed = $order.value;\n    if (typed.length === 0) {\n      $maskSpacer.textContent = '';\n      $maskTail.textContent = 'XXX-XXXXXXX-XXXXXXX';\n      return;\n    }\n    var tail = '';\n    for (var i = typed.length; i < 19; i++) tail += DASH_AT[i] ? '-' : '_';\n    $maskSpacer.textContent = typed;\n    $maskTail.textContent = tail;\n  }\n  $order.addEventListener('input', function () {\n    var formatted = formatOrderValue($order.value);\n    if ($order.value !== formatted) {\n      $order.value = formatted;\n      try { $order.setSelectionRange(formatted.length, formatted.length); } catch (_) {}\n    }\n    renderMask();\n  });\n  renderMask();\n\n  \/\/ -------- Stars --------\n  var rating = 0;\n  (function renderStars() {\n    var starSvg = '<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"width:100%;height:100%\"><path d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"\/><\/svg>';\n    var html = '';\n    for (var i = 1; i <= 5; i++) {\n      html += '<span class=\"wf-star\" role=\"radio\" aria-label=\"' + i + ' stars\" tabindex=\"0\" data-value=\"' + i + '\">' + starSvg + '<\/span>';\n    }\n    $stars.innerHTML = html;\n    $stars.querySelectorAll('.wf-star').forEach(function (el) {\n      el.addEventListener('click', function () { setRating(Number(el.getAttribute('data-value'))); });\n      el.addEventListener('keydown', function (e) {\n        if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setRating(Number(el.getAttribute('data-value'))); }\n      });\n    });\n  })();\n  function setRating(n) {\n    rating = n;\n    $stars.querySelectorAll('.wf-star').forEach(function (el) {\n      var v = Number(el.getAttribute('data-value'));\n      el.classList.toggle('active', v <= n);\n      el.setAttribute('aria-checked', v === n ? 'true' : 'false');\n    });\n    $ratingHint.textContent = '';\n    updateSubmitState();\n  }\n\n  \/\/ -------- Validation --------\n  var ORDER_RE = \/^\\d{3}-\\d{7}-\\d{7}$\/;\n  var EMAIL_RE = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/;\n  var orderVerdict = { ok: false };\n  var checkToken = 0;\n\n  function setHint($el, text) { $el.textContent = text || ''; }\n\n  $order.addEventListener('blur', function () {\n    var v = ($order.value || '').trim();\n    if (!v) { orderVerdict = { ok: false }; setHint($orderHint, ''); $order.classList.remove('wf-invalid'); updateSubmitState(); return; }\n    if (!ORDER_RE.test(v)) {\n      orderVerdict = { ok: false };\n      $order.classList.add('wf-invalid');\n      setHint($orderHint, T.errFormat);\n      updateSubmitState();\n      return;\n    }\n    $order.classList.remove('wf-invalid');\n    setHint($orderHint, '');\n    var myToken = ++checkToken;\n    fetch(API_BASE + '\/api\/forms\/warranty\/check-order', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ order_number: v })\n    }).then(function (r) { return r.json(); }).then(function (data) {\n      if (myToken !== checkToken) return;\n      var code = data && data.code;\n      if (code === 'PASS' || code === 'PASS_NOT_FOUND') {\n        orderVerdict = { ok: true };\n        setHint($orderHint, '');\n        $order.classList.remove('wf-invalid');\n      } else {\n        orderVerdict = { ok: false };\n        $order.classList.add('wf-invalid');\n        var msg = T.errSubmitFailed;\n        if (code === 'NOT_SHIPPED') msg = T.errNotShipped;\n        else if (code === 'REFUNDED') msg = T.errRefunded;\n        else if (code === 'ALREADY_ACTIVATED') msg = T.errAlreadyActivated;\n        else if (code === 'IS_REVIEW_ORDER') msg = T.errReviewOrder;\n        else if (code === 'INVALID_FORMAT') msg = T.errFormat;\n        setHint($orderHint, msg);\n      }\n      updateSubmitState();\n    }).catch(function () {\n      if (myToken !== checkToken) return;\n      orderVerdict = { ok: false };\n      setHint($orderHint, T.errNetwork);\n      updateSubmitState();\n    });\n  });\n\n  $email.addEventListener('blur', function () {\n    var v = ($email.value || '').trim();\n    if (!v) { setHint($emailHint, ''); $email.classList.remove('wf-invalid'); return; }\n    if (!EMAIL_RE.test(v)) { $email.classList.add('wf-invalid'); setHint($emailHint, T.errEmail); }\n    else { $email.classList.remove('wf-invalid'); setHint($emailHint, ''); }\n  });\n\n  $name.addEventListener('blur', function () {\n    var v = ($name.value || '').trim();\n    if (v.length > 50) { $name.classList.add('wf-invalid'); setHint($nameHint, T.errName); }\n    else { $name.classList.remove('wf-invalid'); setHint($nameHint, ''); }\n  });\n\n  function updateSubmitState() {\n    var orderOk = orderVerdict.ok;\n    var emailVal = ($email.value || '').trim();\n    var emailOk = EMAIL_RE.test(emailVal);\n    var nameVal = ($name.value || '').trim();\n    var nameOk = nameVal.length > 0 && nameVal.length <= 50;\n    var ratingOk = rating >= 1;\n    if (orderOk && emailOk && nameOk && ratingOk) {\n      $submit.classList.add('enabled');\n      $submit.disabled = false;\n    } else {\n      $submit.classList.remove('enabled');\n      $submit.disabled = true;\n    }\n  }\n\n  $email.addEventListener('input', updateSubmitState);\n  $name.addEventListener('input', updateSubmitState);\n\n  function validateAll() {\n    var missing = [];\n    var order = ($order.value || '').trim();\n    var email = ($email.value || '').trim();\n    var name = ($name.value || '').trim();\n    if (!order || !ORDER_RE.test(order) || !orderVerdict.ok) missing.push(T.orderNumber);\n    if (!email || !EMAIL_RE.test(email)) missing.push(T.email);\n    if (!name || name.length > 50) missing.push(T.name);\n    if (!rating || rating < 1) missing.push(T.rating);\n    return { ok: missing.length === 0, missing: missing, order: order, email: email, name: name, rating: rating };\n  }\n\n  function showGlobalError(missing) {\n    if (!missing || !missing.length) { $globalError.hidden = true; $globalError.innerHTML = ''; return; }\n    var html = T.errMissingTitle + '<ul>';\n    missing.forEach(function (m) { html += '<li>' + m + '<\/li>'; });\n    html += '<\/ul>';\n    $globalError.innerHTML = html;\n    $globalError.hidden = false;\n  }\n\n  function showFlatError(msg) {\n    $globalError.innerHTML = msg;\n    $globalError.hidden = false;\n  }\n\n  $submit.addEventListener('click', function () {\n    if ($submit.disabled) return;\n    $globalError.hidden = true;\n    var v = validateAll();\n    if (!v.ok) { showGlobalError(v.missing); return; }\n    $submit.disabled = true;\n    $submit.textContent = '...';\n    fetch(API_BASE + '\/api\/forms\/warranty\/submit', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ order_number: v.order, email: v.email, name: v.name, rating: v.rating })\n    }).then(function (r) { return r.json(); }).then(function (data) {\n      if (data && data.success) {\n        $root.hidden = true;\n        $thanks.hidden = false;\n      } else {\n        var code = data && data.code;\n        var msg = T.errSubmitFailed;\n        if (code === 'NOT_SHIPPED') msg = T.errNotShipped;\n        else if (code === 'REFUNDED') msg = T.errRefunded;\n        else if (code === 'ALREADY_ACTIVATED') msg = T.errAlreadyActivated;\n        else if (code === 'IS_REVIEW_ORDER') msg = T.errReviewOrder;\n        else if (code === 'INVALID_EMAIL') msg = T.errEmail;\n        else if (code === 'MISSING_NAME') msg = T.errName;\n        else if (code === 'INVALID_RATING') msg = T.errRating;\n        else if (code === 'INVALID_ORDER_FORMAT') msg = T.errFormat;\n        showFlatError(msg);\n        $submit.disabled = false;\n        $submit.textContent = T.submit;\n      }\n    }).catch(function () {\n      showFlatError(T.errNetwork);\n      $submit.disabled = false;\n      $submit.textContent = T.submit;\n    });\n  });\n})();\n<\/script>\n<\/body>\n<\/html>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\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>","protected":false},"excerpt":{"rendered":"<p>Activate Your 3-Year Warranty! Enjoy Sovboi Projector Without Worries! Warranty Activation Order Number * XXX-XXXXXXX-XXXXXXX How to find my order number? Email * Name * How do you feel about our product? * Submit Thank you! Your warranty has been activated successfully.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-8059","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.0 (Yoast SEO v22.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>warranty - Sovboi Projector<\/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:\/\/sovboi.com\/en_ca\/warranty\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"warranty\" \/>\n<meta property=\"og:description\" content=\"Activate Your 3-Year Warranty! Enjoy Sovboi Projector Without Worries! Warranty Activation Order Number * XXX-XXXXXXX-XXXXXXX How to find my order number? Email * Name * How do you feel about our product? * Submit Thank you! Your warranty has been activated successfully.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sovboi.com\/en_ca\/warranty\/\" \/>\n<meta property=\"og:site_name\" content=\"Sovboi Projector\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/sovboi\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-12T11:19:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-1200x1200.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sovboi.com\/warranty\/\",\"url\":\"https:\/\/sovboi.com\/warranty\/\",\"name\":\"warranty - Sovboi Projector\",\"isPartOf\":{\"@id\":\"https:\/\/sovboi.com\/fr\/#website\"},\"datePublished\":\"2026-04-02T11:51:27+00:00\",\"dateModified\":\"2026-05-12T11:19:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/sovboi.com\/warranty\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sovboi.com\/warranty\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sovboi.com\/warranty\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/sovboi.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"warranty\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sovboi.com\/fr\/#website\",\"url\":\"https:\/\/sovboi.com\/fr\/\",\"name\":\"Sovboi\",\"description\":\"Enjoy Pleasure Moments\",\"publisher\":{\"@id\":\"https:\/\/sovboi.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sovboi.com\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sovboi.com\/fr\/#organization\",\"name\":\"Sovboi\",\"url\":\"https:\/\/sovboi.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\/\/sovboi.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sovboi.com\/wp-content\/uploads\/2022\/04\/sovboi-logo.webp\",\"contentUrl\":\"https:\/\/sovboi.com\/wp-content\/uploads\/2022\/04\/sovboi-logo.webp\",\"width\":284,\"height\":78,\"caption\":\"Sovboi\"},\"image\":{\"@id\":\"https:\/\/sovboi.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/facebook.com\/sovboi\"],\"email\":\"service@sovboi.com\",\"legalName\":\"Sovboi\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"warranty - Sovboi Projector","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:\/\/sovboi.com\/en_ca\/warranty\/","og_locale":"en_US","og_type":"article","og_title":"warranty","og_description":"Activate Your 3-Year Warranty! Enjoy Sovboi Projector Without Worries! Warranty Activation Order Number * XXX-XXXXXXX-XXXXXXX How to find my order number? Email * Name * How do you feel about our product? * Submit Thank you! Your warranty has been activated successfully.","og_url":"https:\/\/sovboi.com\/en_ca\/warranty\/","og_site_name":"Sovboi Projector","article_publisher":"https:\/\/facebook.com\/sovboi","article_modified_time":"2026-05-12T11:19:54+00:00","og_image":[{"url":"https:\/\/sovboi.com\/wp-content\/uploads\/2025\/03\/relaxing-13-1200x1200.webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/sovboi.com\/warranty\/","url":"https:\/\/sovboi.com\/warranty\/","name":"warranty - Sovboi Projector","isPartOf":{"@id":"https:\/\/sovboi.com\/fr\/#website"},"datePublished":"2026-04-02T11:51:27+00:00","dateModified":"2026-05-12T11:19:54+00:00","breadcrumb":{"@id":"https:\/\/sovboi.com\/warranty\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sovboi.com\/warranty\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/sovboi.com\/warranty\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/sovboi.com\/"},{"@type":"ListItem","position":2,"name":"warranty"}]},{"@type":"WebSite","@id":"https:\/\/sovboi.com\/fr\/#website","url":"https:\/\/sovboi.com\/fr\/","name":"Sovboi","description":"Enjoy Pleasure Moments","publisher":{"@id":"https:\/\/sovboi.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sovboi.com\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-CA"},{"@type":"Organization","@id":"https:\/\/sovboi.com\/fr\/#organization","name":"Sovboi","url":"https:\/\/sovboi.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/sovboi.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/sovboi.com\/wp-content\/uploads\/2022\/04\/sovboi-logo.webp","contentUrl":"https:\/\/sovboi.com\/wp-content\/uploads\/2022\/04\/sovboi-logo.webp","width":284,"height":78,"caption":"Sovboi"},"image":{"@id":"https:\/\/sovboi.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/sovboi"],"email":"service@sovboi.com","legalName":"Sovboi"}]}},"_links":{"self":[{"href":"https:\/\/sovboi.com\/en_ca\/wp-json\/wp\/v2\/pages\/8059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sovboi.com\/en_ca\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sovboi.com\/en_ca\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sovboi.com\/en_ca\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sovboi.com\/en_ca\/wp-json\/wp\/v2\/comments?post=8059"}],"version-history":[{"count":0,"href":"https:\/\/sovboi.com\/en_ca\/wp-json\/wp\/v2\/pages\/8059\/revisions"}],"wp:attachment":[{"href":"https:\/\/sovboi.com\/en_ca\/wp-json\/wp\/v2\/media?parent=8059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}