Last Updated: 2026-05-27 | Applies to: IK v1.2+
Announcements System
Purpose: Broadcast messages to specific audiences (everyone, teachers only, parents only, students only)
Where to access:
- Dashboard → "Post Announcement" button
- Or directly from the Announcements widget on the main dashboard
Creating an Announcement
- Click "📢 Post Announcement" on the dashboard
- Fill in the modal form:
┌─────────────────────────────────────────┐│ Post New Announcement │├─────────────────────────────────────────┤│ Title: [End of Year Exams Schedule] ││ ││ Content: ││ [Final exams will begin on June 15th. ││ All students must clear library dues ││ before receiving admit cards.] ││ ││ Target: [Everyone ▾] ││ Options: Everyone / Teachers Only / ││ Parents Only / Students Only ││ ││ Expires: [2026-06-20] (Optional) ││ ││ [Post Announcement] [Cancel] │└─────────────────────────────────────────┘
- Click "Post Announcement"
- Success message appears, announcement visible immediately
Announcement Database Structure
Stored in wp_institutionkit_announcements:
| Column | Description | Example |
|---|---|---|
announcement_id | Auto-increment ID | 42 |
title | Announcement headline | "Exam Schedule" |
content | Full message body | "Final exams..." |
target_audience | Who sees it | all, teachers, parents, students |
class_id | Optional class filter | 5 (Grade 5 only) |
created_by | Admin who posted | 1 |
is_active | Visibility toggle | 1 |
expires_at | Auto-hide date | 2026-06-20 |
campus_id | Campus scope | 3 |
Viewing Logic (Who Sees What)
php
// Announcement visibility rules:- is_active = 1 (must be active)- expires_at IS NULL OR expires_at >= today (not expired)- target_audience = 'all' OR matches user's role- campus_id matches current campus context- LIMIT 10 (most recent 10)
Example:
- Teacher views dashboard → Sees "Teachers Only" + "Everyone" announcements
- Parent views portal → Sees "Parents Only" + "Everyone" announcements
Deleting Announcements
Admins see a 🗑️ trash icon on each announcement in the widget. Click to delete:
- Confirmation dialog appears
- AJAX call removes from database
- Page refreshes automatically
Events System
Purpose: Schedule and display upcoming school events, holidays, exam dates, fee deadlines
Where to access:
- Dashboard → "Add Event" button
- Events widget on main dashboard
Creating an Event
- Click "📅 Add Event" on the dashboard
- Fill in the modal:
┌─────────────────────────────────────────┐│ Add New Event │├─────────────────────────────────────────┤│ Title: [Parent-Teacher Conference] ││ ││ Description: ││ [Quarterly PTA meeting. Parents can ││ discuss student progress with teachers.]││ ││ Event Type: [Meeting ▾] ││ Options: Exam / Holiday / Meeting / ││ School Event / Fee Due Date ││ ││ Start: [2026-06-01 09:00 AM] ││ End: [2026-06-01 12:00 PM] (Optional)││ Location: [School Auditorium] ││ ││ [Add Event] [Cancel] │└─────────────────────────────────────────┘
- Click "Add Event"
Event Type Badges
Events display with color-coded type badges:
| Type | Badge Color | Icon |
|---|---|---|
| Exam | Red | 📝 |
| Holiday | Green | 🏖️ |
| Meeting | Blue | 👥 |
| School Event | Purple | 🎉 |
| Fee Due Date | Orange | 💰 |
Event Display Format
In the widget:
📅 Upcoming Events┌─────────────────────────────────────────┐│ Parent-Teacher Conference [Meeting] ││ Quarterly PTA meeting ││ 📍 School Auditorium ││ 🕒 Jun 1, 2026 9:00 AM - 12:00 PM ││ 🗑️ │├─────────────────────────────────────────┤│ Mid-Term Exams [Exam] ││ Grade 6-10 examination period ││ 📍 Main Hall ││ 🕒 Jun 15, 2026 8:00 AM ││ 🗑️ │└─────────────────────────────────────────┘
Database Structure
Stored in wp_institutionkit_events:
| Column | Description |
|---|---|
event_id | Auto-increment |
title | Event name |
description | Details |
event_type | exam, holiday, meeting, event, fee_due |
start_date | Start datetime |
end_date | End datetime (nullable) |
location | Venue |
created_by | Admin ID |
campus_id | Campus filter |
Best Practices
Announcements:
- Set expiry dates for time-sensitive announcements
- Use "Teachers Only" for staff meeting notices
- Use "Parents Only" for fee-related communications
- Keep content concise (2-3 paragraphs max)
Events:
- Always set location for in-person events
- Use "Fee Due Date" type for payment deadlines
- Add end dates for multi-day events
- Delete past events to keep the widget clean
Troubleshooting
Problem: Announcement not showing for teachersSolution: Check target_audience field - must be "all" or "teachers"
Problem: Event disappeared from widgetSolution: Events only show if start_date >= now. Past events are hidden automatically.
Problem: Can't delete announcementSolution: Only admins can delete. Teachers/accountants see announcements but can't remove them.

Comments are closed.