Files
yogibook_aury_new/public/event_reminder_send.php
T
2026-09-18 09:52:51 +02:00

59 lines
1.7 KiB
PHP

<?php
require_once('include/headscript.php');
require_once('include/event_mailer.php');
/**
* Invio del promemoria manuale a tutti gli iscritti confermati di un evento.
*/
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header('Location: events.php');
exit();
}
$pdo = DBHandlerSelect::getInstance()->getConnection();
$eventId = (int) ($_POST['id'] ?? 0);
$message = trim($_POST['message'] ?? '');
$meetingLink = trim($_POST['meeting_link'] ?? '');
if ($eventId <= 0) {
header('Location: events.php');
exit();
}
// Accetta solo link http/https come punto di ritrovo
if ($meetingLink !== '' && !preg_match('#^https?://#i', $meetingLink)) {
$meetingLink = '';
}
try {
$es = $pdo->prepare("SELECT * FROM events WHERE id = ?");
$es->execute([$eventId]);
$event = $es->fetch(PDO::FETCH_ASSOC);
if (!$event) {
header('Location: events.php?message=error');
exit();
}
$ps = $pdo->prepare("SELECT * FROM event_bookings WHERE event_id = ? AND status = 'confirmed'");
$ps->execute([$eventId]);
$participants = $ps->fetchAll(PDO::FETCH_ASSOC);
foreach ($participants as $p) {
try {
yse_mail_reminder($p, $event, $message, $meetingLink);
} catch (Throwable $me) {
error_log('[reminder send] ' . $me->getMessage());
}
}
$pdo->prepare("UPDATE events SET reminder_sent_at = NOW() WHERE id = ?")->execute([$eventId]);
header('Location: event_reminder.php?id=' . $eventId . '&message=sent');
exit();
} catch (Throwable $ex) {
error_log('[event_reminder_send] ' . $ex->getMessage());
header('Location: event_reminder.php?id=' . $eventId . '&message=error');
exit();
}