{"id":14308,"date":"2025-06-26T08:44:44","date_gmt":"2025-06-26T12:44:44","guid":{"rendered":"https:\/\/zenithtv.net\/?page_id=14308"},"modified":"2026-06-23T07:18:25","modified_gmt":"2026-06-23T11:18:25","slug":"change-package","status":"publish","type":"page","link":"https:\/\/zenithtv.net\/en\/modifier-forfait\/","title":{"rendered":"Package modification"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"14308\" class=\"elementor elementor-14308\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-71b752d1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"71b752d1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3582bf79\" data-id=\"3582bf79\" 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-d32f4ec elementor-widget elementor-widget-spacer\" data-id=\"d32f4ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce0d9b0 elementor-widget elementor-widget-html\" data-id=\"ce0d9b0\" 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<!-- D\u00e9but Calcul Upgrade -->\r\n<div class=\"zenith-upgrade\">\r\n  <h2>\ud83d\udcb8 Modification de forfait \u2013 Ajout de connexions<\/h2>\r\n\r\n  <form id=\"upgrade-form\">\r\n    <label>Dur\u00e9e de votre abonnement actuel (mois)\r\n      <select id=\"duree\">\r\n        <option>1<\/option>\r\n        <option>3<\/option>\r\n        <option>6<\/option>\r\n        <option selected>12<\/option>\r\n      <\/select>\r\n    <\/label>\r\n\r\n    <label>Nombre de connexions actuelles\r\n      <select id=\"actuel\">\r\n        <option>1<\/option>\r\n        <option>2<\/option>\r\n        <option>3<\/option>\r\n        <option>4<\/option>\r\n        <option>5<\/option>\r\n      <\/select>\r\n    <\/label>\r\n\r\n    <label>Connexions souhait\u00e9es apr\u00e8s upgrade\r\n      <select id=\"souhaite\">\r\n        <option>2<\/option>\r\n        <option>3<\/option>\r\n        <option>4<\/option>\r\n        <option>5<\/option>\r\n      <\/select>\r\n    <\/label>\r\n\r\n    <label>Date d'expiration de votre abonnement\r\n      <input type=\"date\" id=\"dateExp\" required>\r\n    <\/label>\r\n\r\n    <label>Jours restants (calcul\u00e9 automatiquement)\r\n      <input type=\"number\" id=\"jours\" value=\"30\" readonly>\r\n    <\/label>\r\n\r\n    <button type=\"button\" id=\"calcBtn\">Continuer<\/button>\r\n\r\n    <div class=\"error\" id=\"errorBox\" style=\"display:none;\"><\/div>\r\n    <div class=\"result\" id=\"output\">Prix : \u2014<\/div>\r\n  <\/form>\r\n<\/div>\r\n\r\n<style>\r\n.zenith-upgrade {\r\n  --accent: #f0293e;\r\n  --bg: #111;\r\n  --txt: #f7f7f7;\r\n  --field: #1e1e1e;\r\n  --l: #2a2a2a;\r\n  background: var(--bg);\r\n  color: var(--txt);\r\n  padding: 24px;\r\n  border-radius: 8px;\r\n  max-width: 420px;\r\n  margin: 0 auto;\r\n}\r\n\r\n.zenith-upgrade h2 {\r\n  margin: 0 0 18px;\r\n  text-align: center;\r\n  font-size: clamp(22px, 5vw, 36px);\r\n}\r\n\r\n.zenith-upgrade label {\r\n  display: block;\r\n  margin: 14px 0;\r\n  font-weight: 600;\r\n  font-size: 15px;\r\n}\r\n\r\n.zenith-upgrade input,\r\n.zenith-upgrade select {\r\n  width: 100%;\r\n  padding: 10px 12px;\r\n  background: var(--field);\r\n  border: 2px solid #2a2a2a;\r\n  border-radius: 6px;\r\n  color: var(--txt);\r\n  font-size: 16px;\r\n}\r\n\r\n.zenith-upgrade input[readonly] {\r\n  cursor: not-allowed;\r\n  opacity: .7;\r\n}\r\n\r\n.zenith-upgrade input[type=date] {\r\n  background: var(--l);\r\n}\r\n\r\n.zenith-upgrade input[type=date]::-webkit-calendar-picker-indicator {\r\n  filter: invert(1);\r\n}\r\n\r\n.zenith-upgrade button {\r\n  width: 100%;\r\n  margin-top: 20px;\r\n  padding: 12px;\r\n  border: 2px solid var(--accent);\r\n  background: transparent;\r\n  color: var(--accent);\r\n  font-size: 18px;\r\n  font-weight: 700;\r\n  border-radius: 8px;\r\n  cursor: pointer;\r\n  transition: .25s;\r\n}\r\n\r\n.zenith-upgrade button:hover {\r\n  background: var(--accent);\r\n  color: #fff;\r\n}\r\n\r\n.zenith-upgrade .result {\r\n  margin-top: 10px;\r\n  font-size: 21px;\r\n  font-weight: 700;\r\n  text-align: center;\r\n}\r\n\r\n.zenith-upgrade .error {\r\n  margin-top: 12px;\r\n  padding: 10px 12px;\r\n  background: #3a1014;\r\n  border: 1px solid #f0293e;\r\n  color: #ffd7dc;\r\n  border-radius: 6px;\r\n  font-size: 14px;\r\n  font-weight: 600;\r\n}\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n  const PR = {\r\n    1:{1:15.99,3:34.99,6:55.99,12:89.99},\r\n    2:{1:20.99,3:44.99,6:72.99,12:119.99},\r\n    3:{1:23.99,3:55.99,6:89.99,12:169.99},\r\n    4:{1:28.99,3:66.99,6:117.99,12:209.99},\r\n    5:{1:31.99,3:84.99,6:144.99,12:249.99}\r\n  };\r\n\r\n  const M = 1.45;\r\n  const DPM = 30.42;\r\n  const MIN_DAYS = 28;\r\n  \/\/ D\u00e9tecter si le visiteur est sur la version anglaise du site\r\nconst currentPath = window.location.pathname;\r\nconst isEnglish = currentPath.startsWith('\/en\/');\r\n\r\n\/\/ Construire le bon slug selon la langue\r\nconst baseSlug = '\/produit\/modification-de-forfait\/';\r\nconst productSlug = isEnglish ? '\/en' + baseSlug : baseSlug;\r\n  \r\n\r\n  const RATES = window.ZENITH_AELIA_RATES || {\r\n  CAD: 1,\r\n  EUR: 0.648949, \/\/ 0.618047 * 1.05\r\n  USD: 0.750640, \/\/ 0.714895 * 1.05\r\n  CHF: 0.598137  \/\/ 0.569654 * 1.05\r\n};\r\n\r\n  const SYMBOLS = window.ZENITH_AELIA_SYMBOLS || {\r\n    CAD: 'CA$',\r\n    EUR: '\u20ac',\r\n    USD: 'US$',\r\n    CHF: 'CHF '\r\n  };\r\n\r\n  function getCookieCurrency() {\r\n    const match = document.cookie.match(\/(?:^|;\\s*)aelia_cs_selected_currency=([^;]+)\/);\r\n    return match ? decodeURIComponent(match[1]).toUpperCase() : '';\r\n  }\r\n\r\n  const activeCur =\r\n    getCookieCurrency() ||\r\n    window.ZENITH_ACTIVE_CURRENCY ||\r\n    'CAD';\r\n\r\n  const activeRate = RATES[activeCur] || 1;\r\n  const activeSym = SYMBOLS[activeCur] || (activeCur + ' ');\r\n\r\n  const duree = document.getElementById('duree');\r\n  const actuel = document.getElementById('actuel');\r\n  const souhaite = document.getElementById('souhaite');\r\n  const dateExp = document.getElementById('dateExp');\r\n  const jours = document.getElementById('jours');\r\n  const calcBtn = document.getElementById('calcBtn');\r\n  const output = document.getElementById('output');\r\n  const errorBox = document.getElementById('errorBox');\r\n\r\n  function showError(msg = '') {\r\n    errorBox.textContent = msg;\r\n    errorBox.style.display = msg ? 'block' : 'none';\r\n  }\r\n\r\n  function calcDays() {\r\n    const d = new Date(dateExp.value);\r\n\r\n    if (isNaN(d)) {\r\n      jours.value = 0;\r\n      return;\r\n    }\r\n\r\n    jours.value = Math.max(0, Math.ceil((d - new Date()) \/ 864e5));\r\n  }\r\n\r\n  function calcCAD() {\r\n    const d = +duree.value;\r\n    const cA = +actuel.value;\r\n    const cN = +souhaite.value;\r\n    const j = +jours.value;\r\n    const exp = dateExp.value;\r\n\r\n    if (!exp) return 0;\r\n    if (j < MIN_DAYS) return 0;\r\n    if (cN <= cA) return 0;\r\n    if (!PR[cA]?.[d] || !PR[cN]?.[d]) return 0;\r\n\r\n    const diff = PR[cN][d] - PR[cA][d];\r\n\r\n    return diff * j \/ (d * DPM) * M;\r\n  }\r\n\r\n  function afficher() {\r\n    showError('');\r\n\r\n    const j = +jours.value;\r\n    const cA = +actuel.value;\r\n    const cN = +souhaite.value;\r\n    const exp = dateExp.value;\r\n\r\n    if (cN <= cA) {\r\n      output.textContent = 'Prix : \u2014';\r\n      showError('Les connexions souhait\u00e9es doivent \u00eatre sup\u00e9rieures aux connexions actuelles.');\r\n      return;\r\n    }\r\n\r\n    if (exp && j < MIN_DAYS) {\r\n      output.textContent = 'Prix : \u2014';\r\n      showError('Upgrade impossible : il doit rester au moins 28 jours avant expiration.');\r\n      return;\r\n    }\r\n\r\n    const cad = calcCAD();\r\n\r\n    if (!cad) {\r\n      output.textContent = 'Prix : \u2014';\r\n      return;\r\n    }\r\n\r\n    const finalAmount = Math.round(cad * activeRate * 100) \/ 100;\r\n    output.textContent = 'Prix : ' + activeSym + finalAmount.toFixed(2);\r\n  }\r\n\r\n  dateExp.addEventListener('change', () => {\r\n    calcDays();\r\n    afficher();\r\n  });\r\n\r\n  ['duree', 'actuel', 'souhaite'].forEach(id => {\r\n    document.getElementById(id).addEventListener('change', afficher);\r\n  });\r\n\r\n  afficher();\r\n\r\n  calcBtn.onclick = () => {\r\n    if (!dateExp.value) {\r\n      showError('Veuillez indiquer la date d\\'expiration.');\r\n      return;\r\n    }\r\n\r\n    if (+jours.value < MIN_DAYS) {\r\n      showError('Upgrade impossible : il doit rester au moins 28 jours avant expiration.');\r\n      return;\r\n    }\r\n\r\n    const cad = calcCAD();\r\n\r\n    if (!cad) {\r\n      showError('Entr\u00e9es invalides.');\r\n      return;\r\n    }\r\n\r\n    showError('');\r\n\r\n    const amountInCur = Math.round(cad * activeRate * 100) \/ 100;\r\n\r\n    const params = new URLSearchParams({\r\n      amount: amountInCur.toFixed(2),\r\n      dur: duree.value,\r\n      cur: actuel.value,\r\n      tar: souhaite.value,\r\n      exp: dateExp.value,\r\n      days: jours.value,\r\n      currency: activeCur\r\n    });\r\n\r\n    location.href = productSlug + '?' + params.toString();\r\n  };\r\n});\r\n<\/script>\r\n<!-- Fin Calcul Upgrade -->\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>\ud83d\udcb8 Modification de forfait \u2013 Ajout de connexions Dur\u00e9e de votre abonnement actuel (mois) 13612 Nombre de connexions actuelles 12345 Connexions souhait\u00e9es apr\u00e8s upgrade 2345 Date d&rsquo;expiration de votre abonnement Jours restants (calcul\u00e9 automatiquement) Continuer Prix : \u2014<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-14308","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/zenithtv.net\/en\/wp-json\/wp\/v2\/pages\/14308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zenithtv.net\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zenithtv.net\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zenithtv.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zenithtv.net\/en\/wp-json\/wp\/v2\/comments?post=14308"}],"version-history":[{"count":0,"href":"https:\/\/zenithtv.net\/en\/wp-json\/wp\/v2\/pages\/14308\/revisions"}],"wp:attachment":[{"href":"https:\/\/zenithtv.net\/en\/wp-json\/wp\/v2\/media?parent=14308"}],"curies":[{"name":"WordPress","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}