Envie um cartão
Encoraje cristãos perseguidos por meio de cartões
Escolha uma das campanhas

CRIANÇAS NA ÁSIA CENTRAL
Envie desenhos para encorajar crianças da Igreja Perseguida

PASTOR YANG EM MIANMAR
Encoraje-o a continuar servindo ao Senhor
<?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>';
?>






