Vielen lieben Dank, das ist sehr hilfreich! Das hat funktioniert. Mein Denkfehler war seit Tagen die falsche Platzierung des PHP-Codes ... Nun ist es geschafft!
Darf ich abschließend noch fragen, ob Sie denken, dass dieser Code so funktioniert? Ich habe nur noch ein Befehl mit expire eingefügt, damit der Fragebogen der einzelnen Tage nach 12 Stunden nicht mehr aufrufbar ist (und man stattdessen dann den nachfolgenden Fragebogen des nächsten Tages nutzt). Der Befehl muss ja vermutlich nur in mailschedule für die Einladung zum Fragebogen, nicht aber in die Erinnerung, oder?
$candidates = [
strtotime('next Monday 00:00:00'),
strtotime('next Tuesday 00:00:00'),
strtotime('next Wednesday 00:00:00'),
strtotime('next Thursday 00:00:00'),
strtotime('next Friday 00:00:00'),
];
$nextDay = min($candidates);
$reference = strtotime('-14 hours');
$candidates = [
strtotime('next Monday 17:00:00', $reference),
strtotime('next Tuesday 17:00:00', $reference),
strtotime('next Wednesday 17:00:00', $reference),
strtotime('next Thursday 17:00:00', $reference),
strtotime('next Friday 17:00:00', $reference),
];
sort($candidates);
mailSchedule(false, 2, $candidates[0], ['expire' => 43200,'status' => 'incomplete']);
mailSchedule(false, 3, $candidates[1], ['expire' => 43200,'status' => 'incomplete']);
mailSchedule(false, 4, $candidates[2], ['expire' => 43200,'status' => 'incomplete']);
mailSchedule(false, 5, $candidates[3], ['expire' => 43200,'status' => 'incomplete']);
mailSchedule(false, 6, $candidates[4], ['expire' => 43200,'status' => 'incomplete']);
// Erinnerungen
$erinnerungen = [
strtotime('next Monday 00:00:00'),
strtotime('next Tuesday 00:00:00'),
strtotime('next Wednesday 00:00:00'),
strtotime('next Thursday 00:00:00'),
strtotime('next Friday 00:00:00'),
];
$nextDay2 = min($erinnerungen);
$reference = strtotime('-14 hours');
$erinnerungen = [
strtotime('next Monday 19:30:00', $reference),
strtotime('next Tuesday 19:30:00', $reference),
strtotime('next Wednesday 19:30:00', $reference),
strtotime('next Thursday 19:30:00', $reference),
strtotime('next Friday 19:30:00', $reference),
];
sort($erinnerungen);
mailSchedule(false, 8, $erinnerungen[0], ['status' => 'no-response']);
mailSchedule(false, 9, $erinnerungen[1], ['status' => 'no-response']);
mailSchedule(false, 10, $erinnerungen[2], ['status' => 'no-response']);
mailSchedule(false, 11, $erinnerungen[3], ['status' => 'no-response']);
mailSchedule(false, 12, $erinnerungen[4], ['status' => 'no-response']);
debug(date('d.m.Y H:i', $candidates[0]));
debug(date('d.m.Y H:i', $candidates[1]));
debug(date('d.m.Y H:i', $candidates[2]));
debug(date('d.m.Y H:i', $candidates[3]));
debug(date('d.m.Y H:i', $candidates[4]));
debug(date('d.m.Y H:i', $erinnerungen[0]));
debug(date('d.m.Y H:i', $erinnerungen[1]));
debug(date('d.m.Y H:i', $erinnerungen[2]));
debug(date('d.m.Y H:i', $erinnerungen[3]));
debug(date('d.m.Y H:i', $erinnerungen[4]));