(igual seu fluxo atual). // ==== Tentativa 1: buscar no Forminator ==== // Carrega WordPress para usar a API do Forminator. define('WP_USE_THEMES', false); require_once dirname(__DIR__) . '/wp-load.php'; if (class_exists('Forminator_API')) { // CONFIG Forminator $form_id = 34968; // ID do formulário da denúncia $slug_h1 = 'hidden-1'; // 1ª parte do protocolo $slug_uid = 'user_id'; // 2ª parte (campo oculto com {user_id}) $slug_desc = 'descricao'; // campo de descrição $slug_resp = 'resposta_ouvidoria'; // campo de resposta $slug_cat = 'categoria'; // opcional $max_paginas = 25; // segurança de paginação $por_pagina = 50; $encontrada = null; for ($page = 1; $page <= $max_paginas; $page++) { // SEMPRE usar args em array (compatível com sua versão 1.47.0) $args = array( 'page' => $page, 'per_page' => $por_pagina, // 'search' => '', 'order_by' => 'time_created', 'order' => 'DESC' // (opcionais) ); try { $resp = Forminator_API::get_entries($form_id, $args); } catch (Throwable $e) { $resp = null; // Qualquer erro da API não derruba a página } if (empty($resp)) break; // Normaliza retorno (algumas instalações entregam objeto com ->entries) if (is_array($resp)) { $entries = $resp; } elseif (is_object($resp) && isset($resp->entries) && is_array($resp->entries)) { $entries = $resp->entries; } else { $entries = array(); } if (empty($entries)) break; foreach ($entries as $entry) { if (empty($entry)) continue; // Normaliza meta_data => [name => value] $meta = array(); if (isset($entry->meta_data) && is_array($entry->meta_data)) { foreach ($entry->meta_data as $m) { if (is_array($m) && isset($m['name'])) { $meta[$m['name']] = $m['value'] ?? ''; } elseif (is_object($m) && isset($m->name)) { $meta[$m->name] = isset($m->value) ? $m->value : ''; } } } $h1 = isset($meta[$slug_h1]) ? $to_scalar($meta[$slug_h1]) : ''; $uid = isset($meta[$slug_uid]) ? $to_scalar($meta[$slug_uid]) : ''; // Fallback (opcional): se {user_id} vier vazio/0 (denúncia anônima), usar entry_id: // if ($uid === '' || $uid === '0') { $uid = isset($entry->entry_id) ? (string)$entry->entry_id : ''; } $comb = $norm($h1 . $uid); // protocolo = hidden-1 + user_id (sem espaços) if ($comb === $protocolo) { $encontrada = (object) array( 'entry_id' => isset($entry->entry_id) ? $entry->entry_id : null, 'meta' => $meta, ); break 2; // achou -> sai dos dois loops } } if (count($entries) < $por_pagina) break; // provavelmente acabou } if ($encontrada) { $desc = $encontrada->meta[$slug_desc] ?? ''; $resp = $encontrada->meta[$slug_resp] ?? ''; $cat = $encontrada->meta[$slug_cat] ?? ''; $safe_desc = wp_kses_post(nl2br(esc_html((string)$to_scalar($desc)))); $safe_resp = (trim((string)$to_scalar($resp)) !== '') ? wp_kses_post(nl2br(esc_html((string)$to_scalar($resp)))) : 'Manifestação recebida, em análise pela Ouvidoria.'; // Monta $dados no MESMO modelo em que você imprime na
Categoria: ' . esc_html($to_scalar($cat)) . '
'; } $dados .= '