| Server IP : 193.86.120.172 / Your IP : 216.73.216.215 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/web/kadernictvidenisa_cz/ |
Upload File : |
<?php
// ============================================
// cron_hodnoceni.php
// Odesílá e-mailovou žádost o hodnocení po termínu rezervace.
// Spouštět pravidelně (např. každých 15 minut) přes cron:
// php /cesta/k/cron_hodnoceni.php
// ============================================
require_once __DIR__ . '/includes/config.php';
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/mailer.php';
$zapnuto = nastaveni('hodnoceni_zadost_zapnuta', '0') === '1';
$hodin = (int) nastaveni('hodnoceni_hodin_po', 2);
if (!$zapnuto || $hodin < 1) {
echo "Žádosti o hodnocení jsou vypnuté nebo má hodnota hodin neplatnou hodnotu.\n";
exit;
}
// Najdi rezervace, kterým termín skončil (cas_do) před $hodin hodinami,
// jsou potvrzené a žádost ještě nebyla odeslána.
// Okno tolerance 15 minut.
$cilovy_cas_od = date('Y-m-d H:i:s', strtotime("-{$hodin} hours -15 minutes"));
$cilovy_cas_do = date('Y-m-d H:i:s', strtotime("-{$hodin} hours"));
$stmt = db()->prepare("
SELECT r.id, r.jmeno, r.prijmeni, r.email, r.datum, r.cas_od, r.token_zmena,
s.nazev AS sluzba_nazev
FROM rezervace r
JOIN sluzby s ON s.id = r.sluzba_id
WHERE r.stav = 'potvrzena'
AND r.hodnoceni_zadost_odeslana = 0
AND CONCAT(r.datum, ' ', r.cas_do) BETWEEN ? AND ?
");
$stmt->execute([$cilovy_cas_od, $cilovy_cas_do]);
$rezervace = $stmt->fetchAll();
echo "Nalezeno " . count($rezervace) . " rezervací k odeslání žádosti o hodnocení.\n";
foreach ($rezervace as $rez) {
$rez_mail = [
'jmeno' => $rez['jmeno'],
'prijmeni' => $rez['prijmeni'],
'email' => $rez['email'],
'datum' => $rez['datum'],
'token_zmena' => $rez['token_zmena'],
];
try {
$ok = email_zadost_hodnoceni($rez_mail, $rez['sluzba_nazev']);
if ($ok) {
db()->prepare("UPDATE rezervace SET hodnoceni_zadost_odeslana = 1 WHERE id = ?")->execute([$rez['id']]);
echo "✓ Odeslána žádost o hodnocení rezervaci #{$rez['id']} ({$rez['jmeno']} {$rez['prijmeni']})\n";
} else {
echo "✗ Chyba při odesílání rezervaci #{$rez['id']}\n";
}
} catch (Exception $e) {
echo "✗ Výjimka u rezervace #{$rez['id']}: " . $e->getMessage() . "\n";
}
}
echo "Hotovo.\n";