dabugsta99
Forum Replies Created
Viewing 1 replies (of 1 total)
-
Thanks for the reply! I do hope it’s a simple oversight on my side lol.
It has worked in the past, but for some reason it isn’t working now. When I save a Post Type, it checks the field drop-downs and pulls the appropriate data for the code vvv. Once I get it submitting successfully, I’ll be adding more to the templates (as you can see the barebones beginnings of them). The “Day 1” is appearing properly in the “Upcoming Events” (tracked by a separate category) but the calendar is not displaying events. I can grab a screenshot if this isn’t descriptive enough for you!
Here’s a copy/paste snip from the code, but I would happily provide more clarity if needed!
// === Create Calendar Event Function ===
// Handles both single-day and multi-day course entries by checking the course type against a template map.
function create_calendar_event($post_id, $course_title, $start_date, $course_type) {
global $wpdb;
$table_events = $wpdb->prefix . 'my_calendar';
$table_occurrences = $wpdb->prefix . 'my_calendar_events';
error_log("DEBUG: [START] Running direct DB insertion for post ID $post_id with course type \"$course_title\"");
// Parse start date (ensure it's Y-m-d)
$parsed_date = date('Y-m-d', strtotime($start_date));
error_log("DEBUG: Parsed start_date from ACF: $parsed_date");
// === Initialize Single Event Data === // WORKING
$event_data = [
'event_title' => $course_title . ' (No Template)',
'event_desc' => 'Manual Code Testing Description.',
'event_category' => 3,
'event_group_id' => $post_id,
'event_link' => get_permalink($post_id),
'event_author' => 1, // Use admin ID or fallback to 1
'event_approved' => 1,
'event_flagged' => 0,
'event_label' => 'auto',
'event_begin' => $parsed_date,
'event_end' => $parsed_date,
'event_time' => '16:00:00',
'event_endtime' => '20:30:00',
'event_hide_end' => 0,
'event_span' => 0,
];
// === Prepare Course Templates ===
$course_templates = [
"First-Aid 103" => [
['offset' => 0, 'start' => '16:30:00', 'end' => '20:00:00'],
['offset' => 1, 'start' => '08:00:00', 'end' => '17:00:00'],
['offset' => 2, 'start' => '08:00:00', 'end' => '14:00:00'],
],
"Wilderness First Aid" => [
['offset' => 0, 'start' => '09:00:00', 'end' => '17:00:00'],
['offset' => 1, 'start' => '09:00:00', 'end' => '17:00:00'],
],
"CPR" => [
['offset' => 0, 'start' => '18:00:00', 'end' => '21:00:00'],
],
"First-Aid 102" => [
['offset' => 0, 'start' => '09:00:00', 'end' => '17:00:00'],
['offset' => 1, 'start' => '09:00:00', 'end' => '17:00:00'],
],
"First-Aid 101" => [
['offset' => 0, 'start' => '18:00:00', 'end' => '21:00:00'],
],
];
error_log("DEBUG: Prepared event data: " . print_r($event_data, true));
// === Multi-day session handling ===
if(array_key_exists($course_type, $course_templates)){
error_log("DEBUG: Implementing multi-day activity for $course_type");
$sessions = $course_templates[$course_type];
$group_id = $post_id;
foreach ($sessions as $index => $session){
$begin_date = date('Y-m-d', strtotime("$parsed_date +{$session['offset']} days"));
$occur_begin = $begin_date . ' ' . $session['start'];
$occur_end = $begin_date . ' ' . $session['end'];
$daily_event_data = [
'event_title' => $course_title . " - Day " . ($index + 1),
'event_desc' => 'Manual Code Testing Description.',
'event_category' => 3,
'event_link' => get_permalink($post_id),
'event_author' => 1,
'event_label' => 'auto',
'event_begin' => $begin_date,
'event_end' => $begin_date,
'event_time' => $session['start'],
'event_endtime' => $session['end'],
'event_group_id' => $group_id,
'event_hide_end' => 0,
'event_span' => 0,
];
$event_inserted = $wpdb->insert($table_events, $daily_event_data);
if ($event_inserted){
$daily_event_id = $wpdb->insert_id;
error_log("SUCCESS: Inserted Day " . ($index + 1) . " event ID $daily_event_id");
refresh_my_calendar_cache($daily_event_id);
if ($index === 0){
$category_relationships_table = $wpdb->prefix . 'my_calendar_category_relationships';
$wpdb->insert($category_relationships_table,[
'event_id' => $daily_event_id,
'category_id' => 6
]);
error_log("DEBUG: Added secondary category 6 to Day 1 event ID $daily_event_id");
}
$occurrence_data = [
'occur_event_id' => $daily_event_id,
'occur_begin' => $occur_begin,
'occur_end' => $occur_end,
'occur_group_id' => $group_id,
];
$occurrence_inserted = $wpdb->insert($table_occurrences, $occurrence_data);
if ($occurrence_inserted){
error_log("SUCCESS: Inserted ocurrence for event ID $daily_event_id on $begin_date");
}
else {
error_log("ERROR: Failed to insert occurrence for event ID $daily_event_id on $begin_date");
error_log("MySQL Error: " . $wpdb->last_error);
}
}
else {
error_log("ERROR: Failed to insert daily event for Day " . ($index + 1));
error_log("MySQL Error: " . $wpdb->last_error);
}
}
}Thank you, in advance 🙂
Viewing 1 replies (of 1 total)