DIP
<?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.

18, 19 e 20 de setembro

Shockwave

2026

Inunde o Chifre da África
com suas orações

Inscreva seu grupo
Inscrições abertas até o período de teste 2027

SHOCKWAVE

Inunde o Chifre da África com suas orações
Inscreva seu grupo

Como participar do Shockwave

O Shockwave é uma onda de oração idealizada pela Portas Abertas e liderada por jovens que decidiram não se calar diante da perseguição. Entre 18 e 20 de setembro, vamos nos unir à igreja secreta e inundar o Chifre da África com intercessão.
icone
Forme um grupo
Convide seus amigos, sua célula ou galera da igreja para formar um grupo de oração em setembro.
1
icone
Cadastre o líder no site
Escolham um responsável para fazer o cadastro como líder de oração.
2
icone
Acesse o material exclusivo
Baixe o devocional e outros materiais digitais gratuitos para guiar seu encontro.
3
Reúna seu grupo
Entre 18 e 20/9, ore com seu grupo. Pode ser em casa, na igreja, no parque, onde vocês escolherem.
4
*Lembre-se de compartilhar as fotos do seu grupo nas redes sociais com #MarcadospeloAmor
Inscreva seu grupo

+3397

Inscritos

Chifre da África | Eles escolheram amar os que os perseguem

A perseguição deixa cicatrizes profundas. No Chifre da África, seguir a Jesus deixa marcas na pele, na história e na alma. As ameaças contra a vida de cristãos são constantes. Mas eles lutam para que não sejam as marcas da dor que os definam, e sim do amor de Jesus.

No Shockwave 2026, ore por nossos irmãos na fé que, sob pressão extrema, testemunham de Jesus e escolhem amar os que os perseguem.

Inscreva seu grupo
“Espero ser morto todos os dias, mas se eu parar meu ministério, pessoas se perderão.”
Abdu, tiktoker evangelista no Chifre da África
Participe
“Em meio à aridez, uma igreja vibrante está florescendo.”
Participe
“Quanto maior a perseguição, mais o evangelho se espalha."
Yakob
Participe
“Os perseguidores podem derrubar as paredes da igreja, mas não a nossa fé.”
Mama Alemu
Participe
“Espero ser morto todos os dias, mas se eu parar meu ministério, pessoas se perderão.”
Abdu, tiktoker evangelista no Chifre da África
Participe
“Em meio à aridez, uma igreja vibrante está florescendo.”
Participe
“Quanto maior a perseguição, mais o evangelho se espalha."
Yakob
Participe
“Os perseguidores podem derrubar as paredes da igreja, mas não a nossa fé.”
Mama Alemu
Participe

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

Perguntas frequentes