{"id":5804,"date":"2025-05-10T01:07:08","date_gmt":"2025-05-10T01:07:08","guid":{"rendered":"https:\/\/streab.com\/panel\/zona-de-abonados\/"},"modified":"2025-12-05T00:11:47","modified_gmt":"2025-12-05T00:11:47","slug":"zona-de-abonados","status":"publish","type":"page","link":"https:\/\/streab.com\/panel\/es\/zona-de-abonados\/","title":{"rendered":"Zona de abonados"},"content":{"rendered":"string(34) \"\/panel\/es\/wp-json\/wp\/v2\/pages\/5804\"\n<link rel=\"stylesheet\" href=\"https:\/\/streab.com\/panel\/wp-content\/themes\/dilabs-child\/css\/home-custom.css\">\r\n<script src=\"https:\/\/streab.com\/panel\/wp-content\/themes\/dilabs-child\/js\/custom.js\"><\/script>\r\n\r\n<main id=\"primary\" class=\"site-main\">\r\n<style>\r\n\/* Estilos permanecem os mesmos *\/\r\nbody{margin:0;padding:0;font-family:'Outfit','Segoe UI',sans-serif;background:linear-gradient(to right,#f1f5f9,#ffffff);color:#0f172a}.avatar-wrapper:hover .avatar-buttons{opacity:1 !important}.avatar-wrapper:hover .avatar{filter:brightness(0.4) blur(1px);transition:all 0.3s ease-in-out}.painel-container{position:relative;background:rgba(255,255,255,0.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:20px;padding:60px;box-shadow:0 12px 30px rgba(0,0,0,0.05);border:1px solid rgba(255,255,255,0.4);max-width:1200px;margin:50px auto;animation:fadeIn 0.8s ease-in-out;text-align:center;transition:all 0.3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}.botao-premium{display:block;width:100%;text-align:center;color:white;font-weight:800;padding:16px;border-radius:16px;margin-bottom:36px;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,0.12);transition:background 0.4s ease,transform 0.2s ease}.botao-premium:hover{transform:scale(1.03);filter:brightness(1.1)}.painel-header{position:relative;text-align:center;background:linear-gradient(to right,#3b82f6,#06b6d4);border-radius:20px;padding:60px 20px 40px 20px;margin-bottom:50px;color:#ffffff;box-shadow:0 10px 40px rgba(0,0,0,0.15);overflow:hidden}.painel-header-content{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;padding:0px 40px}.texto-header{text-align:center;flex:1;min-width:250px}.painel-header h1,.painel-header p{color:#ffffff;font-weight:800}.foto-perfil-container{width:160px;height:160px;border-radius:50%;overflow:hidden;background:white;box-shadow:0 10px 30px rgba(0,0,0,0.25);display:flex;justify-content:center;align-items:center}.foto-perfil-container img{width:100%;height:100%;object-fit:cover}.progress-bar-section{margin-top:40px;text-align:center}.progress-container{background:#dcdcdc;border:2px solid #ffffff;border-radius:20px;overflow:hidden;height:26px;max-width:700px;margin:0 auto 12px;box-shadow:inset 0 0 8px rgba(0,0,0,0.08)}progress{width:100%;height:100%;appearance:none;-webkit-appearance:none;background-color:transparent;transition:all 1s ease-in-out}progress::-webkit-progress-bar{background-color:transparent}progress::-webkit-progress-value{background:repeating-linear-gradient(45deg,#4ade80,#4ade80 10px,#22c55e 10px,#22c55e 20px);background-size:40px 40px;animation:stripes 2s linear infinite;border-radius:18px}@keyframes stripes{0%{background-position:0 0}100%{background-position:40px 0}}.progress-text{font-weight:600;color:#ffffff;margin-top:10px}.painel-grid{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;margin-top:50px}.painel-box{flex:1;min-width:340px;background:#f8fafc;padding:40px;border-radius:24px;border:1px solid #e2e8f0;box-shadow:0 8px 32px rgba(0,0,0,0.06);transition:transform 0.3s ease,box-shadow 0.3s ease}.painel-box:hover{transform:translateY(-8px);box-shadow:0 12px 40px rgba(0,0,0,0.12)}.painel-box h2{border-left:4px solid #0c457b;padding-left:12px;margin-bottom:24px;color:#0f172a}.info-bloco{margin-bottom:20px}.info-label{font-weight:600;color:#475569;margin-bottom:4px}.info-valor{font-weight:700}.painel-footer{text-align:center;margin-top:60px;color:#64748b}a.botao-login{display:inline-block;margin-top:20px;padding:12px 24px;background:#ffffff;color:#ef4444;font-weight:600;border-radius:10px;text-decoration:none;transition:background 0.3s}a.botao-login:hover{background:#fef2f2}.success-message,.error-message{padding:14px;border-radius:10px;font-weight:600;margin-top:14px;animation:fadeIn 0.5s ease-in-out;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:24px}.success-message{background:#ecfdf5;border:1px solid #34d399;color:#065f46;position:relative}.success-message::after{content:'\u2714';font-size:20px;color:#10b981;animation:bounce-check 0.8s ease infinite;margin-left:10px}.error-message{background:#fef2f2;border:1px solid #f87171;color:#7f1d1d}.spinner{display:inline-block;width:18px;height:18px;border:3px solid white;border-radius:50%;border-top-color:transparent;animation:spin 0.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce-check{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}.avatar{width:300px;height:300px;object-fit:cover;border-radius:50%;border:4px solid #06b6d4;box-shadow:0 0 15px rgba(0,0,0,0.2);margin-bottom:20px;transition:all 0.5s ease}.avatar.updated{box-shadow:0 0 0 4px #10b981;animation:pulse 1.5s infinite}@keyframes pulse{0%{box-shadow:0 0 0 4px #10b981}50%{box-shadow:0 0 0 8px #bbf7d0}100%{box-shadow:0 0 0 4px #10b981}}.avatar.loading{filter:blur(3px);opacity:0.6;transition:all 0.3s ease-in-out}.btn-upload,.btn-remove,#btn-confirmar,#btn-fechar{background:#0f172a;color:white;border:none;padding:14px 24px;font-size:16px;border-radius:12px;cursor:pointer;transition:all 0.3s ease;display:inline-flex;align-items:center;gap:8px;position:relative;margin:10px 8px 0}#btn-confirmar::before{content:'\ud83d\udcbe'}#btn-fechar::before{content:'\u274c'}.btn-remove{background:#e11d48 !important}.btn-remove:hover{background:#be123c !important;transform:scale(1.02)}.btn-upload::before{content:'\ud83d\udcf7';animation:bounce 1s infinite}.btn-upload:hover,.btn-remove:hover,#btn-confirmar:hover,#btn-fechar:hover{transform:scale(1.02)}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}.btn-upload.loading::after,#btn-confirmar.loading::after,#btn-remover.loading::after{content:'';margin-left:10px;display:inline-block;vertical-align:middle;width:18px;height:18px;border:3px solid white;border-radius:50%;border-top-color:transparent;animation:spin 0.6s linear infinite}.btn-upload.loading,#btn-confirmar.loading,#btn-remover.loading{opacity:0.6;pointer-events:none}#modal-crop{display:none;position:fixed !important;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:9999;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.crop-popup{background:white;padding:30px;border-radius:24px;max-width:700px;width:95%;text-align:center;position:relative;animation:zoomIn 0.5s ease}@keyframes zoomIn{0%{transform:scale(0.95);opacity:0}100%{transform:scale(1);opacity:1}}#crop-area{width:100%;max-height:600px;position:relative;overflow:hidden}#img-crop{width:100%;height:auto;display:block;margin:0 auto}.cropper-view-box,.cropper-face,.cropper-crop-box{border-radius:50% !important;cursor:move;outline:3px dashed #06b6d4 !important;outline-offset:-5px;box-shadow:0 0 0 20000px rgba(0,0,0,0.6) !important;background-color:transparent !important}progress.verde::-webkit-progress-value{background:linear-gradient(135deg,#4ade80 25%,#22c55e 25%,#22c55e 50%,#4ade80 50%,#4ade80 75%,#22c55e 75%,#22c55e 100%);background-size:40px 40px;animation:stripes 2s linear infinite;border-radius:18px}progress.amarelo::-webkit-progress-value{background:linear-gradient(135deg,#fde047 25%,#facc15 25%,#facc15 50%,#fde047 50%,#fde047 75%,#facc15 75%,#facc15 100%);background-size:40px 40px;animation:stripes 2s linear infinite;border-radius:18px}progress.vermelho::-webkit-progress-value{background:linear-gradient(135deg,#f87171 25%,#ef4444 25%,#ef4444 50%,#f87171 50%,#f87171 75%,#ef4444 75%,#ef4444 100%);background-size:40px 40px;animation:stripes 2s linear infinite;border-radius:18px}progress.verde::-moz-progress-bar,progress.amarelo::-moz-progress-bar,progress.vermelho::-moz-progress-bar{background-size:40px 40px;animation:stripes 2s linear infinite}@media (max-width:480px){.painel-header-content{flex-direction:column}.foto-perfil-container{width:120px;height:120px}}\r\n<\/style>\r\n\r\n<link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/cropperjs\/1.5.13\/cropper.min.css\" rel=\"stylesheet\">\r\n\r\n<div class=\"painel-container\">\r\n    <div class=\"painel-header\" style=\"background:linear-gradient(to right, #ef4444, #f97316);color:white;\">\r\n        <h1>No has iniciado sesi\u00f3n<\/h1>\r\n        <p>Inicia sesi\u00f3n para ver tu panel de suscripci\u00f3n.<\/p>\r\n        <a href=\"https:\/\/streab.com\/panel\/es\/wp-login.php\" class=\"botao-login\">Iniciar sesi\u00f3n<\/a>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/cropperjs\/1.5.13\/cropper.min.js\"><\/script>\r\n<script>\r\n\/\/ Passando os textos do PHP para o JavaScript\r\nconst i18n = {\"header_greeting\":\"\\u00a1Hola,\",\"header_sub\":\"Este es tu panel exclusivo de la suscripci\\u00f3n <b>STREAB<\\\/b>\",\"progress_text_template\":\"Quedan {{dias_restantes}} d\\u00eda(s) de tu plan\",\"btn_change_pass\":\"\\ud83d\\udd10 Cambiar Contrase\\u00f1a\",\"btn_manage_sub\":\"\\ud83d\\udd04 Gestionar Suscripciones\",\"btn_cloud\":\"\\u2601\\ufe0f Nube STREAB\",\"link_change_pass\":\"\\\/es\\\/panel\\\/change-password\\\/\",\"link_manage_sub\":\"\\\/es\\\/panel\\\/manage-subscriptions\\\/\",\"link_cloud\":\"\\\/es\\\/panel\\\/cloud-streab\\\/\",\"btn_change_photo\":\"Cambiar Foto\",\"btn_remove_photo\":\"\\ud83d\\uddd1 Quitar Foto\",\"btn_save_photo\":\"Guardar Foto\",\"btn_cancel\":\"Cancelar\",\"download_box_title\":\"\\ud83d\\ude80 Descarga la \\u00daltima Versi\\u00f3n de STREAB\",\"download_box_desc\":\"STREAB te permite guardar tus cursos en l\\u00ednea de manera f\\u00e1cil, segura y definitiva. \\u00a1Descarga ahora la versi\\u00f3n m\\u00e1s reciente para Windows y macOS!\",\"current_version_loading\":\"Versi\\u00f3n Actual: Cargando...\",\"whats_new_title\":\"\\ud83c\\udd95 Novedades de la Versi\\u00f3n\",\"whats_new_loading\":\"<li>Cargando novedades...<\\\/li>\",\"requirements_title\":\"\\ud83d\\udcbb Requisitos del Sistema\",\"req_windows\":\"<strong>Windows:<\\\/strong> Windows 10 o superior (64 bits), 4GB RAM, 300MB de espacio libre.\",\"req_macos\":\"<strong>MacOS:<\\\/strong> MacOS 12 (Monterey) o superior, chip Intel o M1\\\/M2, 4GB RAM, 300MB libres.\",\"btn_usage_guide\":\"\\ud83d\\udcda Ver Gu\\u00eda de Uso\",\"link_usage_guide\":\"https:\\\/\\\/streab.com\\\/es\\\/panel\\\/usage-guide\\\/\",\"license_warning\":\"\\u26a0\\ufe0f La licencia adquirida es individual e intransferible.<br>El uso no autorizado puede resultar en la suspensi\\u00f3n inmediata del acceso, sin previo aviso, conforme a nuestros T\\u00e9rminos de Uso.\",\"profile_info_title\":\"\\ud83d\\udc64 Informaci\\u00f3n del Perfil\",\"label_name\":\"Nombre:\",\"label_email\":\"E-mail:\",\"subscription_data_title\":\"\\ud83d\\udce6 Datos de la Suscripci\\u00f3n\",\"label_plan\":\"Plan:\",\"label_expiry_date\":\"Fecha de Vencimiento:\",\"label_status\":\"Estado:\",\"footer_text\":\"Panel de Suscripci\\u00f3n STREAB \\u2013 Seguridad y practicidad para tus contenidos.\",\"no_plan_title\":\"No se encontr\\u00f3 ning\\u00fan plan\",\"no_plan_sub\":\"A\\u00fan no has realizado ninguna compra.\",\"btn_see_plans\":\"Ver planes disponibles\",\"link_shop\":\"\\\/es\\\/panel\\\/shop\\\/\",\"invalid_email\":\"Error: E-mail inv\\u00e1lido.\",\"not_logged_in_title\":\"No has iniciado sesi\\u00f3n\",\"not_logged_in_sub\":\"Inicia sesi\\u00f3n para ver tu panel de suscripci\\u00f3n.\",\"btn_login\":\"Iniciar sesi\\u00f3n\",\"js_loading_photo_error\":\"Error al cargar la foto de perfil.\",\"js_photo_changed_success\":\"\\u2705 \\u00a1Foto cambiada con \\u00e9xito!\",\"js_error_generic\":\"Error: \",\"js_upload_error\":\"Error al enviar la imagen.\",\"js_photo_removed_success\":\"\\u2705 \\u00a1Foto eliminada con \\u00e9xito!\",\"js_remove_error\":\"Error al quitar la imagen.\",\"js_plan_basic\":\"B\\u00e1sico\",\"js_plan_intermediate\":\"Intermedio\",\"js_plan_premium\":\"Premium\",\"js_status_active\":\"Activo\",\"js_status_inactive\":\"Inactivo\",\"js_progress_expiring_soon\":\"\\u26a0\\ufe0f \\u00a1Tu suscripci\\u00f3n expira en {{diasRest}} d\\u00eda(s)!\",\"js_progress_expired\":\"\\u274c \\u00a1Tu suscripci\\u00f3n ha expirado!\",\"js_progress_days_left\":\"\\u00a1Quedan {{diasRest}} d\\u00edas para que expire tu suscripci\\u00f3n! \\ud83d\\ude04\",\"js_renew_link_text\":\"Renovar suscripci\\u00f3n\",\"js_panel_data_error\":\"Error al consultar los datos del panel:\",\"js_current_version\":\"Versi\\u00f3n Actual: \",\"js_no_updates\":\"<li>No hay novedades disponibles por el momento.<\\\/li>\",\"js_version_data_error\":\"Error al cargar los datos de la versi\\u00f3n:\"};\r\n\r\n\/\/ =========================\r\n\/\/ FUN\u00c7\u00d5ES AUXILIARES\r\n\/\/ =========================\r\nfunction setLoading(state) {\r\n    const avatar = document.getElementById('current-avatar');\r\n    const uploadBtn = document.getElementById('btn-upload');\r\n    const confirmBtn = document.getElementById('btn-confirmar');\r\n    const removerBtn = document.getElementById('btn-remover');\r\n\r\n    [uploadBtn, confirmBtn, removerBtn].forEach(btn => {\r\n        if (!btn) return;\r\n        if (state) {\r\n            btn.classList.add('loading');\r\n            btn.setAttribute('disabled', true);\r\n        } else {\r\n            btn.classList.remove('loading');\r\n            btn.removeAttribute('disabled');\r\n        }\r\n    });\r\n\r\n    if (avatar) {\r\n        avatar.classList.toggle('loading', state);\r\n    }\r\n}\r\n\r\nfunction mostrarMensagem(texto, tipo = 'sucesso') {\r\n    const feedbackContainer = document.querySelector('.painel-header-content');\r\n    let feedback = document.getElementById('mensagem-feedback');\r\n    if (!feedback) {\r\n        feedback = document.createElement('div');\r\n        feedback.id = 'mensagem-feedback';\r\n        feedbackContainer.insertBefore(feedback, feedbackContainer.firstChild);\r\n    }\r\n    feedback.className = tipo === 'erro' ? 'error-message' : 'success-message';\r\n    feedback.innerHTML = texto;\r\n    feedback.style.width = '100%';\r\n    feedback.style.order = '-1';\r\n    feedback.style.marginBottom = '20px';\r\n    feedback.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n}\r\n\r\n\r\nfunction extrairPrimeiroNomeSobrenome(nomeCompleto) {\r\n    const preposicoes = ['da', 'de', 'do', 'das', 'dos', 'e', 'd', 'del', 'di', 'van', 'von'];\r\n    const partes = nomeCompleto.trim().split(\/\\s+\/);\r\n    if (partes.length === 0) return '';\r\n    const primeiroNome = partes[0];\r\n    let sobrenome = '';\r\n    for (let i = 1; i < partes.length; i++) {\r\n        if (!preposicoes.includes(partes[i].toLowerCase())) {\r\n            sobrenome = partes[i];\r\n            break;\r\n        }\r\n    }\r\n    return primeiroNome + (sobrenome ? ' ' + sobrenome : '');\r\n}\r\n\r\nfunction formatarData(dataISO) {\r\n    if (!dataISO) return '';\r\n    const partes = dataISO.split(' ')[0].split('-');\r\n    return partes[2] + '\/' + partes[1] + '\/' + partes[0];\r\n}\r\n\r\nfunction atualizarCampo(id, texto) {\r\n    const elemento = document.getElementById(id);\r\n    if (elemento) elemento.innerText = texto;\r\n}\r\n\r\nlet cropper;\r\n\r\ndocument.addEventListener('DOMContentLoaded', async function () {\r\n\r\n    const emailSpan = document.querySelector('[data-customer-email]');\r\n    if (!emailSpan) return;\r\n    const email = emailSpan.getAttribute('data-customer-email');\r\n\r\n    \/\/ FOTO DE PERFIL\r\n    async function carregarFoto() {\r\n        const avatar = document.getElementById('current-avatar');\r\n        if (!avatar) return;\r\n        setLoading(true);\r\n        try {\r\n            const r = await fetch(`https:\/\/streab.com\/application\/consulta_dados_painel_streab_shopify_api.php?email=${encodeURIComponent(email)}`);\r\n            const data = await r.json();\r\n            const foto = data?.dados?.foto_perfil;\r\n            avatar.onload = () => setLoading(false);\r\n            avatar.src = (foto && foto.startsWith('http')) ? foto + '?t=' + Date.now() : 'https:\/\/streab.com\/users_avatar\/default.png';\r\n        } catch (e) {\r\n            mostrarMensagem(i18n.js_loading_photo_error, 'erro');\r\n            setLoading(false);\r\n        }\r\n    }\r\n    await carregarFoto();\r\n\r\n    \/\/ CROP - UPLOAD FOTO\r\n    const inputFoto = document.getElementById('inputFoto');\r\n    if(inputFoto) {\r\n        inputFoto.addEventListener('change', function (e) {\r\n            const file = e.target.files[0];\r\n            if (!file) return;\r\n\r\n            const reader = new FileReader();\r\n            reader.onload = function (event) {\r\n                document.getElementById('modal-crop').style.display = 'flex';\r\n                const cropArea = document.getElementById('crop-area');\r\n                cropArea.innerHTML = `<img decoding=\"async\" id=\"img-crop\" src=\"${event.target.result}\">`;\r\n                const image = document.getElementById('img-crop');\r\n\r\n                if (cropper) cropper.destroy();\r\n                cropper = new Cropper(image, {\r\n                    viewMode: 1, aspectRatio: 1, dragMode: 'move',\r\n                    zoomable: false, scalable: false, cropBoxResizable: true,\r\n                    background: false, guides: false,\r\n                });\r\n            };\r\n            reader.readAsDataURL(file);\r\n        });\r\n    }\r\n\r\n    const btnConfirmar = document.getElementById('btn-confirmar');\r\n    if(btnConfirmar) {\r\n        btnConfirmar.addEventListener('click', async function () {\r\n            setLoading(true);\r\n            const canvas = cropper.getCroppedCanvas({ width: 400, height: 400, imageSmoothingQuality: 'high' });\r\n            canvas.toBlob(async function (blob) {\r\n                const formData = new FormData();\r\n                formData.append('foto', blob, 'avatar.png');\r\n                formData.append('email', email);\r\n\r\n                try {\r\n                    const resposta = await fetch('https:\/\/streab.com\/application\/upload_foto_perfil.php', { method: 'POST', body: formData });\r\n                    const resultado = await resposta.json();\r\n                    document.getElementById('modal-crop').style.display = 'none';\r\n                    const avatar = document.getElementById('current-avatar');\r\n                    if (resultado.sucesso) {\r\n                        avatar.src = resultado.url + '?t=' + Date.now();\r\n                        avatar.classList.add('updated');\r\n                        mostrarMensagem(i18n.js_photo_changed_success);\r\n                    } else {\r\n                        mostrarMensagem(i18n.js_error_generic + resultado.erro, 'erro');\r\n                    }\r\n                } catch (e) {\r\n                    mostrarMensagem(i18n.js_upload_error, 'erro');\r\n                } finally {\r\n                    setLoading(false);\r\n                }\r\n            }, 'image\/png');\r\n        });\r\n    }\r\n\r\n    const btnRemover = document.getElementById('btn-remover');\r\n    if(btnRemover) {\r\n        btnRemover.addEventListener('click', async function () {\r\n            setLoading(true);\r\n            try {\r\n                const resposta = await fetch('https:\/\/streab.com\/application\/upload_foto_perfil.php', {\r\n                method: 'POST',\r\n                body: new URLSearchParams({ email, remover: '1' })\r\n                });\r\n                const resultado = await resposta.json();\r\n                const avatar = document.getElementById('current-avatar');\r\n                if (resultado.sucesso) {\r\n                    avatar.src = 'https:\/\/streab.com\/users_avatar\/default_user.jpg';\r\n                    mostrarMensagem(i18n.js_photo_removed_success);\r\n                } else {\r\n                    mostrarMensagem(i18n.js_error_generic + resultado.erro, 'erro');\r\n                }\r\n            } catch (e) {\r\n                mostrarMensagem(i18n.js_remove_error, 'erro');\r\n            } finally {\r\n                setLoading(false);\r\n            }\r\n        });\r\n    }\r\n    \r\n    const btnFechar = document.getElementById('btn-fechar');\r\n    if(btnFechar) {\r\n        btnFechar.addEventListener('click', function () {\r\n            document.getElementById('modal-crop').style.display = 'none';\r\n        });\r\n    }\r\n\r\n\r\n    \/\/ =======================\r\n    \/\/ CONSULTAR DADOS DO USU\u00c1RIO (PAINEL)\r\n    \/\/ =======================\r\n    fetch(`https:\/\/streab.com\/application\/consulta_dados_painel_streab_shopify_api.php?email=${encodeURIComponent(email)}`)\r\n    .then(r => r.json())\r\n    .then(data => {\r\n        if (data.sucesso) {\r\n            const usuario = data.dados;\r\n            atualizarCampo('info-nome', extrairPrimeiroNomeSobrenome(usuario.nome));\r\n            atualizarCampo('info-nome2', extrairPrimeiroNomeSobrenome(usuario.nome));\r\n            atualizarCampo('info-email', usuario.email);\r\n\r\n            let nomePlano = usuario.plano.toLowerCase();\r\n            let planoFormatado;\r\n            if (nomePlano.includes('basico') || nomePlano.includes('b\u00e1sico')) {\r\n                planoFormatado = i18n.js_plan_basic;\r\n            } else if (nomePlano.includes('intermediario') || nomePlano.includes('intermedi\u00e1rio')) {\r\n                planoFormatado = i18n.js_plan_intermediate;\r\n            } else {\r\n                planoFormatado = i18n.js_plan_premium;\r\n            }\r\n            const inicio = new Date(usuario.data_assinatura.replace(' ', 'T')).getTime();\r\n            const fim = new Date(usuario.data_expiracao.replace(' ', 'T')).getTime();\r\n            const duracao = Math.max(1, Math.round((fim - inicio) \/ 86400000));\r\n\r\n            atualizarCampo('info-plano', `${planoFormatado} (${duracao} dias)`);\r\n            atualizarCampo('info-data-expiracao', formatarData(usuario.data_expiracao));\r\n\r\n            const statusEl = document.getElementById('info-status');\r\n            if (statusEl) {\r\n                const agora = Date.now();\r\n                statusEl.innerText = fim > agora ? i18n.js_status_active : i18n.js_status_inactive;\r\n                statusEl.style.color = fim > agora ? '#166534' : '#991b1b';\r\n            }\r\n\r\n            const barra = document.querySelector('#barra-progresso');\r\n            const texto = document.querySelector('.progress-text');\r\n            const diasRestantesEl = document.getElementById('dias-restantes');\r\n            if (barra && texto && diasRestantesEl) {\r\n                const agora = Date.now();\r\n                const diffTotal = Math.max(1, (fim - inicio) \/ 86400000);\r\n                const diffConsumidos = (agora - inicio) \/ 86400000;\r\n                const diffRestantes = (fim - agora) \/ 86400000;\r\n                let progresso = (diffConsumidos \/ diffTotal) * 100;\r\n                progresso = Math.min(100, Math.max(0, progresso));\r\n                const diasRest = Math.ceil(Math.max(0, diffRestantes));\r\n\r\n                barra.value = progresso.toFixed(1);\r\n                barra.classList.remove('verde', 'amarelo', 'vermelho');\r\n                barra.classList.add(fim <= agora || diasRest <= 7 ? 'vermelho' : diasRest <= 30 ? 'amarelo' : 'verde');\r\n                \r\n                diasRestantesEl.textContent = diasRest;\r\n                \r\n                const renovarLink = `<br><a href=\"${usuario.link_renovacao}\" style=\"color:#0a4074;font-weight:600;text-decoration:underline;\">${i18n.js_renew_link_text}<\/a>`;\r\n                let textoProgresso = texto.innerHTML; \/\/ Pega o template\r\n                \r\n                if (diasRest <= 7) {\r\n                    texto.innerHTML = i18n.js_progress_expiring_soon.replace('{{diasRest}}', diasRest) + renovarLink;\r\n                }\r\n                if (diasRest <= 0) {\r\n                    texto.innerHTML = i18n.js_progress_expired + renovarLink;\r\n                }\r\n            }\r\n        }\r\n    })\r\n    .catch(error => console.error(i18n.js_panel_data_error, error));\r\n\r\n    \/\/ =======================\r\n    \/\/ CONSULTAR VERS\u00c3O STREAB\r\n    \/\/ =======================\r\n    fetch('https:\/\/streab.com\/application\/consulta_versao_streab.php')\r\n    .then(response => response.json())\r\n    .then(data => {\r\n        if (data.sucesso) {\r\n            const versaoSpan = document.getElementById('info-versao');\r\n            if (versaoSpan) versaoSpan.innerText = i18n.js_current_version + data.dados.versao;\r\n\r\n            const linkWindows = document.getElementById('botao-download-windows');\r\n            const linkMacOS = document.getElementById('botao-download-macos');\r\n            if (linkWindows && linkMacOS) {\r\n                linkWindows.href = data.dados.url_download_windows;\r\n                linkMacOS.href = data.dados.url_download_mac;\r\n            }\r\n\r\n            const novidadesLista = document.getElementById('novidades-lista');\r\n            if (novidadesLista) {\r\n                novidadesLista.innerHTML = '';\r\n                const lang = 'es';\r\n                const texto = data.dados.novidades?.[lang] || data.dados.novidades?.pt || '';\r\n                if (texto) {\r\n                    texto.split('\\n').forEach(l => {\r\n                        const li = document.createElement('li');\r\n                        li.textContent = l.replace(\/^\\-\\s*\/, '');\r\n                        novidadesLista.appendChild(li);\r\n                    });\r\n                } else {\r\n                    novidadesLista.innerHTML = i18n.js_no_updates;\r\n                }\r\n            }\r\n        }\r\n    })\r\n    .catch(error => console.error(i18n.js_version_data_error, error));\r\n});\r\n<\/script>\r\n<\/main>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"area-do-assinanteV2.php","meta":{"footnotes":""},"class_list":["post-5804","page","type-page","status-publish","hentry","page--item"],"_links":{"self":[{"href":"https:\/\/streab.com\/panel\/es\/wp-json\/wp\/v2\/pages\/5804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/streab.com\/panel\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/streab.com\/panel\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/streab.com\/panel\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/streab.com\/panel\/es\/wp-json\/wp\/v2\/comments?post=5804"}],"version-history":[{"count":1,"href":"https:\/\/streab.com\/panel\/es\/wp-json\/wp\/v2\/pages\/5804\/revisions"}],"predecessor-version":[{"id":7051,"href":"https:\/\/streab.com\/panel\/es\/wp-json\/wp\/v2\/pages\/5804\/revisions\/7051"}],"wp:attachment":[{"href":"https:\/\/streab.com\/panel\/es\/wp-json\/wp\/v2\/media?parent=5804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}