<?php 
// Headers específicos para LiteSpeed Cache
header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Expires: Thu, 01 Jan 1970 00:00:00 GMT');

// Headers específicos para LiteSpeed
if (function_exists('litespeed_purge_all')) {
    header('X-LiteSpeed-Cache-Control: no-cache');
}

// Desabilitar cache do WordPress para este arquivo
if (!defined('DONOTCACHEPAGE')) {
    define('DONOTCACHEPAGE', true);
}
if (!defined('DONOTCACHEOBJECT')) {
    define('DONOTCACHEOBJECT', true);
}
if (!defined('DONOTCACHEDB')) {
    define('DONOTCACHEDB', true);
}

// Verificar se existe um parâmetro para forçar atualização do cookie
$force_refresh = isset($_GET['refresh_user']) || isset($_POST['refresh_user']);

// Tentar obter o cookie de diferentes formas
$idpessoacode = null;

// Método 1: Cookie tradicional
if (isset($_COOKIE['idpessoacode']) && !empty($_COOKIE['idpessoacode'])) {
    $idpessoacode = sanitize_text_field($_COOKIE['idpessoacode']);
}

// Método 2: Verificar via JavaScript se o cookie não foi encontrado
if (empty($idpessoacode)) {
    echo '<script>
        // Tentar obter cookie via JavaScript
        function getCookie(name) {
            let value = "; " + document.cookie;
            let parts = value.split("; " + name + "=");
            if (parts.length == 2) return parts.pop().split(";").shift();
            return null;
        }
        
        let cookieValue = getCookie("idpessoacode");
        if (cookieValue && cookieValue !== "") {
            // Reenviar via POST se encontrou cookie no JS
            let form = document.createElement("form");
            form.method = "POST";
            form.style.display = "none";
            
            let input = document.createElement("input");
            input.name = "js_cookie_value";
            input.value = cookieValue;
            form.appendChild(input);
            
            let refresh = document.createElement("input");
            refresh.name = "refresh_user";
            refresh.value = "1";
            form.appendChild(refresh);
            
            document.body.appendChild(form);
            form.submit();
        }
    </script>';
}

// Método 3: Verificar se foi enviado via POST do JavaScript
if (empty($idpessoacode) && isset($_POST['js_cookie_value']) && !empty($_POST['js_cookie_value'])) {
    $idpessoacode = sanitize_text_field($_POST['js_cookie_value']);
}

// Debug (remover em produção)
error_log('Cookie idpessoacode: ' . ($idpessoacode ? $idpessoacode : 'não encontrado'));

if (!empty($idpessoacode)) {
    $url = "https://cmsv3.portasabertas.org.br/api/pessoas/mev3";

    $headers = [
        'Authorization' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJNREV5VW10R1ZGWkZUazVWZHowOVRXcEJNRTlCUFQwIn0=.sR2PWTqcv/2a1efuM7mlshQ0hEkCGRnV0HmVi7rzQro=', 
        'Content-Type'  => 'application/json',
        'Cache-Control' => 'no-cache',
        'User-Agent' => 'WordPress/' . get_bloginfo('version') . '; ' . get_bloginfo('url')
    ];

    $body = json_encode([
        'idpessoacode' => $idpessoacode
    ]);

    // Adicionar timestamp para evitar cache na API
    $response = wp_remote_post($url . '?t=' . time(), [
        'headers' => $headers,
        'body'    => $body,
        'timeout' => 15,
        'sslverify' => true,
        'blocking' => true,
        'httpversion' => '1.1'
    ]);

    if (!is_wp_error($response)) {
        $response_code = wp_remote_retrieve_response_code($response);
        $body_response = wp_remote_retrieve_body($response);
        
        // Debug da resposta (remover em produção)
        error_log('Response code: ' . $response_code);
        error_log('Response body: ' . $body_response);
        
        $data = json_decode($body_response, true);

        if (!empty($data) && isset($data['data']['despessoa'])) {
            $nome   = esc_html($data['data']['despessoa']);
            $imagem = !empty($data['data']['desimage']) 
                        ? esc_url($data['data']['desimage']) 
                        : "https://sitepa.s3.amazonaws.com/wp-content/uploads/br/2025/09/Vertical-container-1.avif";

            // Adicionar um identificador único para evitar cache do browser
            $cache_buster = '?v=' . time();
            if (strpos($imagem, '?') !== false) {
                $cache_buster = '&v=' . time();
            }

            // Usuário logado
            echo '
            <div class="user-menu" style="position:relative;display:inline-block;" data-user-loaded="true">
                <div class="user-box" style="display:flex;align-items:center;gap:8px;cursor:pointer;" onclick="toggleUserDropdown(this)">
                    <img src="'.$imagem.$cache_buster.'" alt="'.$nome.'" style="width:35px;height:35px;border-radius:50%;object-fit:cover;" onload="this.style.opacity=1" style="opacity:0;transition:opacity 0.3s;">
                    <span style="font-size:14px;">Hola, <strong>'.$nome.'</strong></span>
                    <img src="https://sitepa.s3.amazonaws.com/wp-content/uploads/br/2025/09/Arrows-Diagrams.svg" alt="Seta" style="width:25px;height:25px;">
                </div>
                <div class="user-dropdown" style="display:none;position:absolute;right:0;top:100%;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,0.15);min-width:200px;z-index:999;">
                    <a href="https://parceiro.portasabertas.org.br/" style="display:flex;align-items:center;gap:6px;padding:10px;color:#333;text-decoration:none;font-size:14px;">
                        <img src="https://sitepa.s3.amazonaws.com/wp-content/uploads/br/2025/09/login-enter-arrow-right-circle.svg" alt="Área restrita" style="width:16px;height:16px;">
                        Acceder al portal
                    </a>
                    
                </div>
            </div>

            <script>
            function toggleUserDropdown(element) {
                let dropdown = element.nextElementSibling;
                dropdown.style.display = dropdown.style.display === "block" ? "none" : "block";
            }

            function refreshUserData() {
                window.location.href = window.location.href + (window.location.href.includes("?") ? "&" : "?") + "refresh_user=1";
            }

            // Fechar dropdown ao clicar fora
            document.addEventListener("click", function(e) {
                document.querySelectorAll(".user-dropdown").forEach(function(drop){
                    if (!drop.previousElementSibling.contains(e.target)) {
                        drop.classList.remove("show");
                        drop.style.display = "none";
                    }
                });
            });

            // Verificar se o usuário foi carregado corretamente
            document.addEventListener("DOMContentLoaded", function() {
                if (!document.querySelector("[data-user-loaded]")) {
                    console.log("Usuário não carregado, tentando novamente em 2 segundos...");
                    setTimeout(function() {
                        window.location.reload();
                    }, 2000);
                }
            });
            </script>
            ';
        } else {
            // Dados inválidos na API
            error_log('Dados inválidos retornados pela API: ' . json_encode($data));
            showFallbackLogin();
        }
    } else {
        // Erro na API
        error_log('Erro na API: ' . $response->get_error_message());
        showFallbackLogin();
    }
} else {
    // Sem cookie
    showFallbackLogin();
}

// Função para mostrar o fallback de login
function showFallbackLogin() {
    echo '<div class="user-login" style="display:flex;align-items:center;gap:10px;">';
    echo '<img src="https://sitepa.s3.amazonaws.com/wp-content/uploads/br/2025/09/Vertical-container-1.avif" alt="Login" style="width:35px;height:35px;">';
    echo '<a href="https://auth.parceiro.portasabertas.org.br/login">Entrar</a>';
    echo '<span class="header__divider">|</span>';
    echo '<a href="https://auth.parceiro.portasabertas.org.br/cadastro">Regístrate</a>';
    echo '</div>';
}

// CSS adicional para melhorar a experiência
echo '<style>
.user-menu img {
    transition: opacity 0.3s ease-in-out;
}
.user-dropdown.show {
    display: block !important;
}
</style>';
?>
Bem vindo
Acesse sua conta ou registre-se gratuitamente.
Inscrições abertas até o período de teste

SHOCKWAVE 2026

Teste subtítulo
VEJA COMO FOI
Inscritos

Irã | Uma igreja sem rosto Teste

Mais de três mil grupos se reuniram em oração pelos cristãos iranianos durante o Shockwave 2025. Jovens de todo o país se engajaram para ser a voz daqueles que não têm liberdade de expressar sua fé e, assim, apoiar a igreja sem rosto no Irã. Gratidão! Teste

VEJA COMO FOI

Como participar do Shockwave Teste

Caso você não tenha participado do movimento jovem de oração da Portas Abertas pelos cristãos perseguidos, ainda dá tempo. As inscrições ficam abertas até 3 de outubro. Inscreva-se agora. Veja como é fácil! Teste
icone
Forme um grupo Teste
Convide seus amigos para participarem do evento em setembro Teste
1
icone
Cadastre o líder no site Teste
Escolham um responsável para fazer o cadastro como líder da reunião Teste
2
icone
Acesse o material exclusivo Teste
Acesse o material de apoio com login e senha do líder cadastrado Teste
3
Realizem o encontro de oração Teste
Entre 19 e 21/9, façam o encontro no lugar escolhido: casa, igreja, praça ou cafeteria Teste
4
Todos os dias surgem duas novas igrejas domésticas no Irã Teste
“Nós estamos dispostos a pagar o preço. E vocês? Estão dispostos a fazer sua parte?”
Pastor iraniano
“Cristãos fazem cultos à noite em micro-ônibus. Outros se reúnem ao ar livre, no parque ou na montanha.” Teste
Hovan, pastor iraniano Teste

Veja os melhores momentos do Shockwave 2025 com fotos enviadas por participantes Teste

Perguntas frequentes