28283
This commit is contained in:
parent
2c7ebcace0
commit
94ddfaeca6
BIN
assets/pasted-20251017-115952-0d605af0.png
Normal file
BIN
assets/pasted-20251017-115952-0d605af0.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
BIN
assets/pasted-20251017-120438-de869d16.png
Normal file
BIN
assets/pasted-20251017-120438-de869d16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
@ -258,7 +258,10 @@
|
|||||||
<a href="${data.outlook_link}" download="webinar.ics" class="btn btn-outline-light">Add to Outlook/iCal</a>
|
<a href="${data.outlook_link}" download="webinar.ics" class="btn btn-outline-light">Add to Outlook/iCal</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="what-you-learn" style="margin-top: 60px;">
|
<div class="what-you-learn" style="margin-top: 60px;">
|
||||||
<h4>SCHEDULE</h4>
|
<div style="display: flex; align-items: center; margin-bottom: 20px;">
|
||||||
|
<img src="assets/pasted-20251017-115404-4e52d477.png" alt="Bot" style="width: 50px; margin-right: 15px;">
|
||||||
|
<h4>SCHEDULE</h4>
|
||||||
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Intro ~10 min</li>
|
<li>Intro ~10 min</li>
|
||||||
<li>Creating Apps ~40-50 min</li>
|
<li>Creating Apps ~40-50 min</li>
|
||||||
|
|||||||
34
register.php
34
register.php
@ -65,31 +65,39 @@ try {
|
|||||||
$stmt->execute([$webinar_id, $first_name, $last_name, $email, $company, $how_did_you_hear, $password_hash, $timezone]);
|
$stmt->execute([$webinar_id, $first_name, $last_name, $email, $company, $how_did_you_hear, $password_hash, $timezone]);
|
||||||
|
|
||||||
// --- SEND CONFIRMATION EMAIL ---
|
// --- SEND CONFIRMATION EMAIL ---
|
||||||
$webinar_date_obj = new DateTime($webinar['scheduled_at']);
|
$webinar_date_obj = new DateTime('2025-12-29 13:00:00', new DateTimeZone('America/New_York'));
|
||||||
$subject = "Confirmation: You're Registered for " . $webinar['title'];
|
$subject = "Confirmation: You're Registered for Professional Vibe-Coding Webinar by Flatlogic";
|
||||||
$body_html = "<h1>You're in!</h1><p>Thanks for registering for our webinar: <strong>{$webinar['title']}</strong>.</p><p>It will take place on <strong>" . $webinar_date_obj->format('l, F j, Y \a\t g:i A T') . "</strong>.</p><p>You can now log in to your dashboard to see the details.</p>";
|
$body_html = "<h1>You're in!</h1><p>Thanks for registering for our webinar: <strong>Professional Vibe-Coding Webinar by Flatlogic</strong>.</p><p>It will take place on <strong>" . $webinar_date_obj->format('l, F j, Y \a\t g:i A T') . "</strong>.</p><p>You can now log in to your dashboard to see the details.</p>";
|
||||||
MailService::sendMail($email, $subject, $body_html);
|
MailService::sendMail($email, $subject, $body_html);
|
||||||
|
|
||||||
// --- PREPARE SUCCESS RESPONSE ---
|
// --- PREPARE SUCCESS RESPONSE ---
|
||||||
$webinar_date = new DateTime($webinar['scheduled_at'], new DateTimeZone('UTC'));
|
$webinar_date = new DateTime('2025-12-29 13:00:00', new DateTimeZone('America/New_York'));
|
||||||
$start_time_utc = $webinar_date->format('Ymd H is Z');
|
$webinar_date->setTimezone(new DateTimeZone('UTC'));
|
||||||
|
$start_time_utc = $webinar_date->format('Ymd\THis\Z');
|
||||||
$webinar_date->add(new DateInterval('PT1H')); // Assume 1 hour duration
|
$webinar_date->add(new DateInterval('PT1H')); // Assume 1 hour duration
|
||||||
$end_time_utc = $webinar_date->format('Ymd H is Z');
|
$end_time_utc = $webinar_date->format('Ymd\THis\Z');
|
||||||
|
|
||||||
$google_link = 'https://www.google.com/calendar/render?action=TEMPLATE&text=' . urlencode($webinar['title']) . '&dates=' . $start_time_utc . '/' . $end_time_utc . '&details=' . urlencode($webinar['description']) . '&ctz=UTC';
|
$google_link = 'https://www.google.com/calendar/render?action=TEMPLATE&text=' . urlencode('Professional Vibe-Coding Webinar by Flatlogic') . '&dates=' . $start_time_utc . '/' . $end_time_utc . '&details=' . urlencode('The fastest way to go from an idea to a working app you own, running on your server, with your database, using real frameworks.') . '&location=' . urlencode('Online') . '&ctz=UTC';
|
||||||
|
|
||||||
$ics_content = implode("\n", [
|
$ics_content = implode("\r\n", [
|
||||||
'BEGIN:VCALENDAR', 'VERSION:2.0', 'BEGIN:VEVENT',
|
'BEGIN:VCALENDAR',
|
||||||
|
'VERSION:2.0',
|
||||||
|
'PRODID:-//Flatlogic//Professional Vibe-Coding Webinar//EN',
|
||||||
|
'BEGIN:VEVENT',
|
||||||
'URL:' . 'http://' . $_SERVER['HTTP_HOST'],
|
'URL:' . 'http://' . $_SERVER['HTTP_HOST'],
|
||||||
'DTSTART:' . $start_time_utc, 'DTEND:' . $end_time_utc,
|
'DTSTART;TZID=UTC:' . $start_time_utc,
|
||||||
'SUMMARY:' . $webinar['title'], 'DESCRIPTION:' . $webinar['description'],
|
'DTEND;TZID=UTC:' . $end_time_utc,
|
||||||
'END:VEVENT', 'END:VCALENDAR'
|
'SUMMARY:Professional Vibe-Coding Webinar by Flatlogic',
|
||||||
|
'DESCRIPTION:The fastest way to go from an idea to a working app you own, running on your server, with your database, using real frameworks.',
|
||||||
|
'LOCATION:Online',
|
||||||
|
'END:VEVENT',
|
||||||
|
'END:VCALENDAR'
|
||||||
]);
|
]);
|
||||||
$outlook_link = 'data:text/calendar;charset=utf-8,' . rawurlencode($ics_content);
|
$outlook_link = 'data:text/calendar;charset=utf-8,' . rawurlencode($ics_content);
|
||||||
|
|
||||||
echo json_encode([
|
echo json_encode([
|
||||||
'success' => true,
|
'success' => true,
|
||||||
'webinar_title' => $webinar['title'],
|
'webinar_title' => 'Professional Vibe-Coding Webinar by Flatlogic',
|
||||||
'google_link' => $google_link,
|
'google_link' => $google_link,
|
||||||
'outlook_link' => $outlook_link
|
'outlook_link' => $outlook_link
|
||||||
]);
|
]);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user