feat: soporte de imagen dinámica en plantillas WhatsApp

- Detecta header_type=IMAGE en get_template_details.php
- send_message (individual): muestra input de imagen si la plantilla lo requiere,
  sube a upload_media.php y envía header_image_url al backend
- broadcast (masivo): igual, con upload previo al envío
- api/send_message.php: acepta header_image_url y lo pasa como headerParameters
  [type:image, image:{link:URL}] a WhatsAppService::sendTemplateMessage()
- api/send_broadcast.php: igual para cada destinatario del masivo
- Preview en tiempo real de la imagen seleccionada en ambos formularios
This commit is contained in:
Lizandro Guarnizo
2026-03-13 13:24:22 -05:00
parent 027c8a6f26
commit e081dc739a
4 changed files with 148 additions and 24 deletions
+11 -1
View File
@@ -260,9 +260,19 @@ try {
error_log("Method: sendTemplateMessage()");
error_log("========================================================");
// Preparar header de imagen dinámica si se proporcionó
$headerParams = [];
if (!empty($input['header_image_url'])) {
$imageUrl = filter_var($input['header_image_url'], FILTER_VALIDATE_URL) ? $input['header_image_url'] : null;
if ($imageUrl) {
$headerParams = [['type' => 'image', 'image' => ['link' => $imageUrl]]];
error_log("Template header image URL: " . $imageUrl);
}
}
// Intentar envío y, si falla por traducción no encontrada, probar variantes de idioma
try {
$response = $whatsappService->sendTemplateMessage($recipient, $template, $language, $parameters, [], $componentsSimple);
$response = $whatsappService->sendTemplateMessage($recipient, $template, $language, $parameters, $headerParams, $componentsSimple);
} catch (Exception $e) {
$message = $e->getMessage();