{"id":1476,"date":"2025-10-01T13:46:20","date_gmt":"2025-10-01T13:46:20","guid":{"rendered":"https:\/\/pro-diag.org\/?page_id=1476"},"modified":"2025-10-01T14:13:29","modified_gmt":"2025-10-01T14:13:29","slug":"pro-diag-buy-subscription","status":"publish","type":"page","link":"https:\/\/pro-diag.org\/es\/pro-diag-buy-subscription\/","title":{"rendered":"Pro diag Buy subscription"},"content":{"rendered":"<style>.kadence-column1476_29b0a7-1c > .kt-inside-inner-col{padding-bottom:var(--global-kb-spacing-md, 2rem);}.kadence-column1476_29b0a7-1c > .kt-inside-inner-col,.kadence-column1476_29b0a7-1c > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1476_29b0a7-1c > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1476_29b0a7-1c > .kt-inside-inner-col{flex-direction:column;}.kadence-column1476_29b0a7-1c > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1476_29b0a7-1c > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1476_29b0a7-1c{position:relative;}@media all and (max-width: 1024px){.kadence-column1476_29b0a7-1c > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1476_29b0a7-1c > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1476_29b0a7-1c\"><div class=\"kt-inside-inner-col\"><!-- PRODIAG: Purchase Steps (place ABOVE the product gallery) -->\n<section class=\"prodiag-steps-wrap\" aria-labelledby=\"prodiag-steps-title\">\n  <h2 id=\"prodiag-steps-title\" class=\"prodiag-steps-title\">C\u00f3mo activar su suscripci\u00f3n en PRO DIAG DIAGNOSTIC<\/h2>\n\n  <ol class=\"prodiag-steps\">\n    <li class=\"prodiag-step\">\n      <span class=\"prodiag-step-num\">1<\/span>\n      <div class=\"prodiag-step-body\">\n        <h3 class=\"prodiag-step-head\">Seleccione su plan<\/h3>\n        <p class=\"prodiag-step-text\">Elija la opci\u00f3n de suscripci\u00f3n que mejor se adapte a usted.<\/p>\n      <\/div>\n    <\/li>\n\n    <li class=\"prodiag-step\">\n      <span class=\"prodiag-step-num\">2<\/span>\n      <div class=\"prodiag-step-body\">\n        <h3 class=\"prodiag-step-head\">Abrir el producto y a\u00f1adirlo al carrito<\/h3>\n        <p class=\"prodiag-step-text translation-block\">Haga clic en <strong>Suscribirse ahora<\/strong> para ver la p\u00e1gina del producto y luego en <strong>A\u00f1adir al carrito<\/strong> para continuar.<\/p>\n      <\/div>\n    <\/li>\n\n    <li class=\"prodiag-step\">\n      <span class=\"prodiag-step-num\">3<\/span>\n      <div class=\"prodiag-step-body\">\n        <h3 class=\"prodiag-step-head\">Revise su bandeja de entrada<\/h3>\n        <p class=\"prodiag-step-text\">\n          Primero recibir\u00e1 las instrucciones de configuraci\u00f3n. Poco despu\u00e9s, un segundo correo electr\u00f3nico incluir\u00e1 sus datos de acceso.\n        <\/p>\n      <\/div>\n    <\/li>\n  <\/ol>\n<\/section>\n\n<style>\n  .prodiag-steps-wrap{\n    margin:32px 0 22px;\n    background:#ffffff;\n    border:2px solid #e7e7e7;\n    border-radius:14px;\n    padding:18px;\n  }\n  .prodiag-steps-title{\n    margin:0 0 14px;\n    font-size:22px;\n    font-weight:800;\n    text-transform:uppercase;\n    color:#0a3d62;\n    border-left:6px solid #0a3d62;\n    padding-left:12px;\n  }\n\n  .prodiag-steps{\n    list-style:none;\n    margin:0;\n    padding:0;\n    display:grid;\n    grid-template-columns: repeat(3, minmax(0,1fr));\n    gap:16px;\n    align-items:stretch;\n  }\n\n  .prodiag-step{\n    display:flex;\n    gap:12px;\n    background:#f8f8f8;\n    border:1px solid #ececec;\n    border-radius:12px;\n    padding:14px;\n    align-items:flex-start;\n    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;\n  }\n  .prodiag-step:hover{\n    transform:translateY(-2px);\n    box-shadow:0 10px 20px rgba(0,0,0,.06);\n    border-color:#0a3d62;\n  }\n\n  .prodiag-step-num{\n    flex:0 0 auto;\n    width:34px; height:34px;\n    border-radius:999px;\n    background:#0a3d62;\n    color:#fff;\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    font-weight:800;\n    font-size:16px;\n    line-height:1;\n  }\n\n  .prodiag-step-body{display:grid; gap:4px}\n  .prodiag-step-head{\n    margin:0; font-size:15px; font-weight:800; color:#0a3d62;\n  }\n  .prodiag-step-text{\n    margin:0; font-size:14px; color:#333;\n  }\n\n  \/* Responsive *\/\n  @media (max-width: 900px){\n    .prodiag-steps{grid-template-columns:1fr; gap:12px;}\n    .prodiag-step{padding:12px;}\n  }\n<\/style><\/div><\/div><style>.kadence-column1476_454a9c-7c > .kt-inside-inner-col,.kadence-column1476_454a9c-7c > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1476_454a9c-7c > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1476_454a9c-7c > .kt-inside-inner-col{flex-direction:column;}.kadence-column1476_454a9c-7c > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1476_454a9c-7c > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1476_454a9c-7c{position:relative;}@media all and (max-width: 1024px){.kadence-column1476_454a9c-7c > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1476_454a9c-7c > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1476_454a9c-7c\"><div class=\"kt-inside-inner-col\"><!-- PRODIAG: Featured Products -->\n<section class=\"prodiag-picks-wrap\">\n  <h2 class=\"prodiag-picks-title\">Comprar productos de suscripci\u00f3n ProDiag<\/h2>\n  <!-- Use product IDs -->\n  <div id=\"prodiag-picks\" class=\"prodiag-picks\" data-ids=\"26,31,40\"><\/div>\n<\/section>\n\n<style>\n  .prodiag-picks-wrap { margin: -15px 0; }\n  .prodiag-picks-title{\n    margin:0 0 20px;font-size:24px;font-weight:800;text-transform:uppercase;color:#1e1c22;\n    border-left:6px solid #0a3d62;padding-left:12px;\n  }\n\n  \/* Responsive grid for up to 4 products *\/\n  .prodiag-grid{display:grid;gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}\n  @media (max-width:1024px){.prodiag-grid{grid-template-columns:repeat(3,1fr)}}\n  @media (max-width:768px){.prodiag-grid{grid-template-columns:repeat(2,1fr)}}\n  @media (max-width:460px){.prodiag-grid{grid-template-columns:1fr}}\n\n  \/* Card design *\/\n  .prodiag-card{\n    display:flex;flex-direction:column;background:#fff;border:2px solid #e7e7e7;border-radius:14px;\n    text-decoration:none;color:inherit;overflow:hidden;height:100%;\n    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;\n  }\n  .prodiag-card:hover{border-color:#0a3d62;box-shadow:0 14px 28px rgba(0,0,0,.15);transform:translateY(-3px)}\n\n  \/* Product image *\/\n  .prodiag-figure{\n    aspect-ratio: 4 \/ 3;\n    background:#fafafa;\n    overflow:hidden;\n    padding-top:10px;\n    box-sizing:border-box;\n  }\n  .prodiag-figure img{\n    width:100%;\n    height:100%;\n    object-fit:contain;\n    display:block;\n    transition:transform .4s ease;\n  }\n  .prodiag-card:hover .prodiag-figure img{\n    transform:scale(1.03);\n  }\n\n  \/* Body section under the image *\/\n  .prodiag-body{padding:18px;display:grid;gap:10px;text-align:center;background:#fff}\n\n  \/* Product title *\/\n  .prodiag-name{font-size:16px;font-weight:700;line-height:1.35;min-height:2.7em;color:#111}\n\n  \/* Product price *\/\n  .prodiag-price{\n    font-size:20px;\n    font-weight:800;\n    color:#0a3d62;\n  }\n  .prodiag-price .price{display:inline-block !important;color:#0a3d62 !important;font-weight:800}\n  .prodiag-price .woocommerce-Price-amount{white-space:nowrap}\n\n  \/* Subscribe button *\/\n  .prodiag-btn{\n    margin-top:6px;display:inline-block;text-align:center;padding:11px 14px;border-radius:8px;\n    background:#0a3d62;color:#fff;font-weight:800;text-transform:uppercase;font-size:13px;\n    transition:background .25s ease\n  }\n  .prodiag-btn:hover{background:#1e1c22;color:#fff}\n<\/style>\n\n<script>\n(function(){\n  const mount = document.getElementById('prodiag-picks');\n  if(!mount) return;\n  const ids = (mount.dataset.ids || '').split(',').map(s=>s.trim()).filter(Boolean);\n\n  if(!ids.length){\n    mount.innerHTML = '<p>\u26a0 Please set product IDs in <code>data-ids<\/code>.<\/p>';\n    return;\n  }\n\n  const fmt = (c, minor)=> new Intl.NumberFormat(undefined,{style:'currency', currency:c}).format((Number(minor)||0)\/100);\n\n  function fallbackPrice(p){\n    try{\n      if(p?.prices?.price) return fmt(p.prices.currency_code, p.prices.price);\n      if(p?.prices?.regular_price) return fmt(p.prices.currency_code, p.prices.regular_price);\n    }catch(e){}\n    return '';\n  }\n\n  async function load(){\n    try{\n      const url = `\/wp-json\/wc\/store\/v1\/products?include=${ids.join(',')}&per_page=${ids.length}`;\n      const res = await fetch(url,{credentials:'same-origin'});\n      if(!res.ok) throw new Error('HTTP '+res.status);\n      const items = await res.json();\n\n      const byId = Object.fromEntries(items.map(p=>[String(p.id),p]));\n      const ordered = ids.map(id=>byId[String(id)]).filter(Boolean);\n\n      if(!ordered.length){ mount.innerHTML='<p>No products found. Check IDs.<\/p>'; return; }\n\n      mount.innerHTML = `\n        <div class=\"prodiag-grid\">\n          ${ordered.map(p=>{\n            const img = p.images?.[0]?.src || '';\n            const priceHtml = p.prices?.price_html || '';\n            const fallback = !priceHtml ? `<span class=\"price\">${fallbackPrice(p)}<\/span>` : '';\n            const safeName = (p.name||'').replace(\/\"\/g,'&quot;');\n            return `\n              <a class=\"prodiag-card\" href=\"${p.permalink}\">\n                <figure class=\"prodiag-figure\">\n                  ${img ? `<img decoding=\"async\" src=\"${img}\" alt=\"${safeName}\" loading=\"lazy\">` : ``}\n                <\/figure>\n                <div class=\"prodiag-body\">\n                  <div class=\"prodiag-name\">${safeName}<\/div>\n                  <div class=\"prodiag-price\">${priceHtml || fallback}<\/div>\n                  <span class=\"prodiag-btn\">Subscribe Now<\/span>\n                <\/div>\n              <\/a>\n            `;\n          }).join('')}\n        <\/div>`;\n    }catch(e){\n      console.error(e);\n      mount.innerHTML = '<p>\u26a0 Error loading products.<\/p>';\n    }\n  }\n  load();\n})();\n<\/script><\/div><\/div><style>.kadence-column1476_ef3a10-61 > .kt-inside-inner-col{display:flex;}.kadence-column1476_ef3a10-61 > .kt-inside-inner-col{padding-top:var(--global-kb-spacing-lg, 3rem);padding-bottom:var(--global-kb-spacing-xl, 4rem);}.kadence-column1476_ef3a10-61 > .kt-inside-inner-col,.kadence-column1476_ef3a10-61 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1476_ef3a10-61 > .kt-inside-inner-col{row-gap:var(--global-kb-gap-md, 2rem);column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1476_ef3a10-61 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1476_ef3a10-61 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1476_ef3a10-61 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1476_ef3a10-61{position:relative;}@media all and (max-width: 1024px){.kadence-column1476_ef3a10-61 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1476_ef3a10-61 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1476_ef3a10-61\"><div class=\"kt-inside-inner-col\"><!-- PRODIAG: Optional Add-Ons (3-col like main grid, with lock badge) -->\n<section class=\"prodiag-picks-wrap\">\n  <h2 class=\"prodiag-picks-title\">Complementos opcionales (EV &amp; IMMO)<\/h2>\n  <p class=\"prodiag-note\">Estos complementos est\u00e1n disponibles solo con una licencia principal de Cars o Cars+Trucks.<\/p>\n  <div id=\"prodiag-addons\" class=\"prodiag-picks\" data-ids=\"1461,1452\"><\/div>\n<\/section>\n\n<style>\n  .prodiag-note{ margin:-10px 0 16px; font-size:14px; color:#374151; }\n\n  \/* 3 columns \u2013 enako kot zgoraj pri glavnih produktih *\/\n  .prodiag-grid.addons{display:grid;gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}\n  @media (max-width:1024px){.prodiag-grid.addons{grid-template-columns:repeat(3,1fr)}}\n  @media (max-width:768px){.prodiag-grid.addons{grid-template-columns:repeat(2,1fr)}}\n  @media (max-width:460px){.prodiag-grid.addons{grid-template-columns:1fr}}\n\n  \/* Placeholder dr\u017ei \u201cprazno 3. mesto\u201d, da sta EV\/IMMO enake \u0161irine kot zgoraj *\/\n  .prodiag-card.placeholder{opacity:0; pointer-events:none;}\n\n  \/* LOCKED stanje + badge *\/\n  .prodiag-card.is-locked{ filter:grayscale(.4); opacity:.7; pointer-events:none; position:relative; }\n  .prodiag-card.is-locked .prodiag-btn{ background:#9aa7b3; color:#fff; cursor:not-allowed; }\n  .prodiag-figure{ position:relative; } \/* za badge *\/\n  .prodiag-lock-badge{\n    position:absolute; top:10px; right:10px;\n    background:#0a3d62; color:#fff; font-size:11px; font-weight:800;\n    padding:6px 8px; border-radius:6px;\n  }\n<\/style>\n\n<script>\n(function(){\n  const mount = document.getElementById('prodiag-addons');\n  if(!mount) return;\n\n  const addonIds = (mount.dataset.ids||'').split(',').map(s=>s.trim()).filter(Boolean);\n  if(!addonIds.length){ mount.innerHTML = '<p>\u26a0 Please set add-on IDs in <code>data-ids<\/code>.<\/p>'; return; }\n\n  \/\/ Add-ons se odkleneta samo \u010de je v ko\u0161arici 26 (Cars) ali 31 (Cars+Trucks)\n  const QUALIFY_MAIN_IDS = ['26','31'];\n\n  const fmt = (c, minor)=> new Intl.NumberFormat(undefined,{style:'currency', currency:c}).format((Number(minor)||0)\/100);\n  function fallbackPrice(p){\n    try{\n      if(p?.prices?.price) return fmt(p.prices.currency_code, p.prices.price);\n      if(p?.prices?.regular_price) return fmt(p.prices.currency_code, p.prices.regular_price);\n    }catch(e){}\n    return '';\n  }\n\n  async function fetchProductsByIds(ids){\n    const url = `\/wp-json\/wc\/store\/v1\/products?include=${ids.join(',')}&per_page=${ids.length}`;\n    const res = await fetch(url, { credentials:'same-origin' });\n    if(!res.ok) throw new Error('HTTP '+res.status);\n    return res.json();\n  }\n\n  async function fetchCart(){\n    const res = await fetch('\/wp-json\/wc\/store\/v1\/cart', { credentials:'same-origin' });\n    if(!res.ok) return null;\n    return res.json();\n  }\n\n  function render(products, unlocked){\n    const byId = Object.fromEntries(products.map(p=>[String(p.id),p]));\n    const ordered = addonIds.map(id=>byId[String(id)]).filter(Boolean);\n    if(!ordered.length){ mount.innerHTML = '<p>No add-ons found. Check IDs.<\/p>'; return; }\n\n    \/\/ \u010de sta samo 2, dodamo \u201cghost\u201d kartico, da dr\u017ei 3. stolpec\n    const needPlaceholder = ordered.length === 2;\n\n    mount.innerHTML = `\n      <div class=\"prodiag-grid addons\">\n        ${ordered.map(p=>{\n          const img = p.images?.[0]?.src || '';\n          const priceHtml = p.prices?.price_html || '';\n          const fallback = !priceHtml ? `<span class=\"price\">${fallbackPrice(p)}<\/span>` : '';\n          const safeName = (p.name||'').replace(\/\"\/g,'&quot;');\n          const lockedClass = unlocked ? '' : 'is-locked';\n          const lockBadge = unlocked ? '' : '<span class=\"prodiag-lock-badge\">Locked<\/span>';\n          const CardTagOpen  = unlocked ? `<a class=\"prodiag-card ${lockedClass}\" href=\"${p.permalink}\">`\n                                        : `<div class=\"prodiag-card ${lockedClass}\">`;\n          const CardTagClose = unlocked ? `<\/a>` : `<\/div>`;\n\n          return `\n            ${CardTagOpen}\n              <figure class=\"prodiag-figure\">\n                ${img ? `<img decoding=\"async\" src=\"${img}\" alt=\"${safeName}\" loading=\"lazy\">` : ``}\n                ${lockBadge}\n              <\/figure>\n              <div class=\"prodiag-body\">\n                <div class=\"prodiag-name\">${safeName}<\/div>\n                <div class=\"prodiag-price\">${priceHtml || fallback}<\/div>\n                <span class=\"prodiag-btn\">${unlocked ? 'Add Add-On' : 'Requires Main License'}<\/span>\n              <\/div>\n            ${CardTagClose}\n          `;\n        }).join('')}\n        ${needPlaceholder ? `<div class=\"prodiag-card placeholder\" aria-hidden=\"true\"><\/div>` : ``}\n      <\/div>`;\n  }\n\n  async function load(){\n    try{\n      const products = await fetchProductsByIds(addonIds);\n      render(products, false); \/\/ privzeto zaklenjeno\n\n      const cart = await fetchCart();\n      const hasMain = !!cart?.items?.some(it =>\n        ['26','31'].includes(String(it.id)) ||\n        ['26','31'].includes(String(it?.catalog_data?.id))\n      );\n\n      if(hasMain){ render(products, true); }\n    }catch(e){\n      console.error(e);\n      mount.innerHTML = '<p>\u26a0 Error loading add-ons.<\/p>';\n    }\n  }\n\n  load();\n})();\n<\/script><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>How to activate your subscription on PRO DIAG DIAGNOSTIC 1 Select your plan Choose the subscription option that works best for you. 2 Open product &amp; add to cart Hit Subscribe Now to view the product page, then click Add to Cart to proceed. 3 Check your inbox First, you\u2019ll get setup instructions. Soon after,&#8230;<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"iawp_total_views":2401,"footnotes":""},"class_list":["post-1476","page","type-page","status-publish","hentry"],"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"xdiag12","author_link":"https:\/\/pro-diag.org\/es\/author\/xdiag12\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/pro-diag.org\/es\/wp-json\/wp\/v2\/pages\/1476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pro-diag.org\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pro-diag.org\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pro-diag.org\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/pro-diag.org\/es\/wp-json\/wp\/v2\/comments?post=1476"}],"version-history":[{"count":20,"href":"https:\/\/pro-diag.org\/es\/wp-json\/wp\/v2\/pages\/1476\/revisions"}],"predecessor-version":[{"id":1501,"href":"https:\/\/pro-diag.org\/es\/wp-json\/wp\/v2\/pages\/1476\/revisions\/1501"}],"wp:attachment":[{"href":"https:\/\/pro-diag.org\/es\/wp-json\/wp\/v2\/media?parent=1476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}