Files
whatsapp/debug_template_recordatorio.php

117 lines
4.5 KiB
PHP

<?php
/**
* Debug: Ver qué devuelve get_template_details.php para recordatorio_charla
*/
require_once __DIR__ . '/config/config.php';
header('Content-Type: text/plain; charset=utf-8');
echo "=== DEBUG get_template_details.php para recordatorio_charla ===\n\n";
try {
$db = Database::getInstance();
// Buscar template por nombre
$template = $db->fetch(
"SELECT * FROM message_templates WHERE template_name = 'recordatorio_charla' LIMIT 1"
);
if (!$template) {
echo "❌ Plantilla 'recordatorio_charla' no encontrada\n";
exit;
}
echo "📋 DATOS DE LA PLANTILLA:\n";
echo "ID: {$template['id']}\n";
echo "Nombre: {$template['template_name']}\n";
echo "Idioma: {$template['language_code']}\n";
echo "Estado: {$template['status']}\n\n";
echo "📝 BODY TEXT:\n";
echo $template['body_text'] . "\n\n";
echo "📦 EXAMPLE_PARAMETERS (raw):\n";
echo $template['example_parameters'] . "\n\n";
if (!empty($template['example_parameters'])) {
$examples = json_decode($template['example_parameters'], true);
if (isset($examples['variables']) && is_array($examples['variables'])) {
echo "✅ Variables guardadas en BD:\n";
foreach ($examples['variables'] as $i => $var) {
echo "\n Variable #{$i}:\n";
echo " index: " . ($var['index'] ?? 'N/A') . "\n";
echo " name: " . ($var['name'] ?? 'N/A') . "\n";
echo " placeholder: " . ($var['placeholder'] ?? 'N/A') . "\n";
echo " example: " . ($var['example'] ?? 'N/A') . "\n";
}
} else {
echo "⚠️ No hay variables en example_parameters\n";
}
} else {
echo "⚠️ example_parameters está vacío\n";
}
echo "\n\n📤 LO QUE DEVOLVERÍA get_template_details.php:\n";
// Simular lo que hace get_template_details.php
$bodyText = $template['body_text'] ?? '';
$variables = [];
// Primero intentar usar las variables guardadas
if (!empty($template['example_parameters'])) {
$examples = json_decode($template['example_parameters'], true);
if (isset($examples['variables']) && is_array($examples['variables'])) {
foreach ($examples['variables'] as $var) {
$varName = $var['name'] ?? $var['index'];
$variables[] = [
'index' => $var['index'],
'placeholder' => $var['placeholder'],
'label' => is_numeric($varName) ? 'Variable ' . $varName : ucfirst(str_replace('_', ' ', $varName)),
'required' => true,
'example' => $var['example'] ?? null
];
}
}
}
// Si no hay variables guardadas, extraerlas del body_text (fallback)
if (empty($variables) && preg_match_all('/\{\{([^\}]+)\}\}/', $bodyText, $matches)) {
echo "⚠️ Extrayendo variables del body_text (fallback)\n\n";
$uniqueVars = array_unique($matches[1]);
$index = 1;
foreach ($uniqueVars as $varName) {
$varIndex = is_numeric($varName) ? intval($varName) : $index++;
$variables[] = [
'index' => $varIndex,
'placeholder' => '{{' . $varName . '}}',
'label' => is_numeric($varName) ? 'Variable ' . $varName : ucfirst(str_replace('_', ' ', $varName)),
'required' => true,
'example' => null
];
}
}
echo json_encode(['variables' => $variables], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
echo "\n\n🔍 ANÁLISIS:\n";
if (!empty($variables)) {
$firstPlaceholder = $variables[0]['placeholder'] ?? '';
if (preg_match('/^\{\{\d+\}\}$/', $firstPlaceholder)) {
echo "❌ PROBLEMA: Las variables están en formato NUMÉRICO ({{1}}, {{2}}, etc.)\n";
echo " Esto hace que saveReminder() las guarde como array indexado\n";
echo " Pero la plantilla usa nombres: {{nombre_tema}}, {{fecha}}, etc.\n\n";
echo "💡 SOLUCIÓN: Necesitas sincronizar la plantilla desde WhatsApp API\n";
echo " para actualizar example_parameters con los nombres correctos\n";
} else {
echo "✅ Variables están en formato con NOMBRES\n";
echo " saveReminder() las guardará como objeto asociativo\n";
}
}
} catch (Exception $e) {
echo "❌ Error: " . $e->getMessage() . "\n";
}