added mail to events
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
<?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();
|
||||
}
|
||||
Reference in New Issue
Block a user