InstitutionKit v1.2.1
The Unified Cloud ERP for Educational Excellence โ Complete Multi-Campus School Management for WordPress
InstitutionKit is a complete multi-campus school management ERP built natively for WordPress. It transforms your WordPress installation into a powerful educational management platform with unlimited campuses, 62 custom capabilities, and 40+ database tables.
Multi-Campus Architecture
Unlimited campuses with complete data isolation and aggregated reporting.
Granular Role System
5 roles, 62 capabilities โ every user sees exactly what they need.
Complete Financial Suite
Fees, invoices, expenses, payroll, loans, budgets โ all integrated.
Advanced Exam Module
7 categories, verification workflow, PDF report cards, analytics.
Who Is This For?
| User | Capabilities |
|---|---|
| Super Admin | Full system control, all campuses, all 62 capabilities |
| Campus Admin | Manage their campus โ students, staff, fees, attendance (48 capabilities) |
| Teacher | Mark attendance, enter grades, assign homework, manage meetings (14 capabilities) |
| Finance Manager | Manage expenses, process payroll, track collections, set budgets (16 capabilities) |
| Parent | View child's grades, attendance, homework, invoices, book meetings (4 capabilities) |
Website: institutionkit.com | Phone: +92 300 455 1325 | Email: [email protected]
Installation
Complete guide to installing InstitutionKit on your WordPress site.
System Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| WordPress | 5.8+ | 6.4+ |
| PHP | 7.4 | 8.1+ |
| MySQL | 5.7 | 8.0+ / MariaDB 10.4+ |
| PHP Memory | 128MB | 256MB+ |
| Max Execution Time | 60s | 300s |
| PHP Extensions | mysqli, curl, dom, mbstring, gd | |
Multi-campus environments should allocate 256MB+. Payroll generation and PDF report cards are memory-intensive.
Installation Steps
1. Upload the Plugin
Via WordPress Admin: Go to Plugins โ Add New โ Upload Plugin, choose institutionkit.zip, click Install, then Activate.
Via FTP: Extract and upload to /wp-content/plugins/, then activate from Plugins menu.
2. Automatic Setup
Upon activation, InstitutionKit creates 40+ custom database tables, registers 5 custom post types (ik_student, ik_class, ik_exam, ik_certificate, ik_period), registers 2 taxonomies, creates 5 user roles, inserts default data, and creates the default "Main Campus".
You'll be automatically redirected to the InstitutionKit Dashboard.
Troubleshooting
Tables not created: Go to Settings โ System Status โ Recreate Tables.
Memory exhausted: Add to wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
Quick Setup Guide
Configure InstitutionKit for your school in under 30 minutes.
Step 1: Configure Your Campus
Go to InstitutionKit โ Campuses. Edit "Main Campus":
| Field | Example |
|---|---|
| Campus Name | "Springfield Elementary" |
| Campus Code | "SE" |
| Address | Full campus address |
| Phone | +1 555-0123 |
| [email protected] | |
| Principal Name | "Dr. Robert Langdon" |
Step 2: Classes
Go to Setup โ Classes. Add "Grade 1", "Grade 2", etc.
Step 3: Subjects
Go to Setup โ Subjects. Add Mathematics, English, Science and assign to classes.
Step 4: Sections (Optional)
Go to Setup โ Sections. Add "A", "B", "C".
Step 5: Grading Periods
| Field | Monthly Example | Exam Example |
|---|---|---|
| Title | "October Assessment" | "First Term Exam" |
| Period Type | Monthly | Exam |
| Weight | 1.00 | 3.00 |
Step 6: Grade Scale
| % | Grade | GPA |
|---|---|---|
| 90-100 | A+ | 4.00 |
| 85-89 | A | 4.00 |
| 80-84 | A- | 3.70 |
| 77-79 | B+ | 3.30 |
| 73-76 | B | 3.00 |
| 70-72 | B- | 2.70 |
| 67-69 | C+ | 2.30 |
| 63-66 | C | 2.00 |
| 60-62 | C- | 1.70 |
| 50-59 | D | 1.00 |
| 0-49 | F | 0.00 |
Step 7: Fee Types & Structures
Create fee types (Tuition, Transport, Library) and structures with amounts per class at Fee Management.
Step 8: Add Staff
Go to Payroll & Expenses โ Staff. Add staff with name, email, role, campus, and contract type. Teaching staff automatically get WordPress accounts with welcome emails.
Step 9: School Settings
Set currency symbol, school hours, and academic year at InstitutionKit โ Settings.
License Activation
Activate your license to receive updates and premium support.
| State | Effect |
|---|---|
| Inactive | Yellow banner reminder on all IK pages |
| Active | No banner. Full updates and support access. |
| Expired | Warning banner. System works but updates paused. |
All features remain functional regardless of license status.
Activation Steps
- Go to InstitutionKit โ Settings โ License
- Enter your key (format:
IK-XXXX-XXXX-XXXX-XXXX) - Click Activate License
Troubleshooting
| Issue | Solution |
|---|---|
| Invalid Key | Copy-paste from email. License tied to registered domain. |
| Connection Failed | Allow outbound connections to institutionkit.com on port 443. |
| Already in Use | Contact support to transfer license. |
Multi-Campus Architecture
True multi-tenancy โ unlimited campuses with complete data isolation.
Core Principles
| Principle | Implementation |
|---|---|
| Data Isolation | Every table includes campus_id as partition key |
| Role-Bound Visibility | Campus Admins SQL-restricted to their campus |
| Independent Config | Fee structures, heads, scales โ all per-campus |
| Aggregated View | Super Admins toggle single or "All Campuses" |
| Audit Trail | Every transfer permanently logged |
Two-Tier Admin Model
| Role | Access |
|---|---|
| Super Admin | All campuses + aggregated view. Can switch via admin bar, dashboard, or URL. |
| Campus Admin | Single assigned campus only. Switcher hidden. URL override ignored. |
If a user has both administrator and campus_admin roles, they become a Super Admin.
Data Partitioning Layers
Custom Tables
SELECT * FROM wp_institutionkit_attendance WHERE campus_id = 3;
Post Meta
SELECT p.ID FROM wp_posts p JOIN wp_postmeta pm ON p.ID = pm.post_id WHERE pm.meta_key = '_ik_campus_id' AND pm.meta_value = 3;
Application Context
$campus_id = IK_Campus_Manager::get_current_campus_id(); // 0=All, 1-99=specific
Cross-Campus Financial Intelligence
| Metric | Formula |
|---|---|
| Revenue | Sum of all collections |
| Direct Expenses | Campus-paid expenses |
| Payroll | Total staff costs |
| Net Surplus | Revenue โ Expenses โ Payroll |
| Profit Margin | (Net Surplus รท Revenue) ร 100 |
| Cost Per Student | Total Costs รท Student Count |
Roles & Capabilities
62 custom capabilities across 5 user roles with granular access control.
Role Comparison
| Area | Admin | Campus Admin | Teacher | Finance | Parent |
|---|---|---|---|---|---|
| Total Caps | 62 | 48 | 14 | 16 | 4 |
| Students | Full | Full | View | โ | โ |
| Staff | Full | Attendance | โ | โ | โ |
| Fees | Full | View+Pay | โ | Full | View Own |
| Exams | Full | Entry+Cards | Entry+Cards | โ | โ |
| Payroll | Full | Reports | โ | Full | โ |
| Expenses | Full | Basic | โ | Full | โ |
| Gradebook | Full | Full | Full | โ | View Own |
| Attendance | Full | Full | Student | โ | โ |
| Homework | Full | Full | Assign+View | โ | โ |
| Meetings | Full | Full | Create+View | โ | Book Own |
| Settings | Full | Campus | โ | โ | โ |
manage_options capability (WordPress administrator) bypasses all InstitutionKit capability checks.
Campus Management Deep-Dive
Technical architecture of campus context, data partitioning, and the campus switcher.
Campus Context Lifecycle
// Runs on every admin page load at priority 5
IK_Campus_Manager::determine_current_campus();
// Returns 0 for "All Campuses", 1-99 for specific campus
$campus_id = IK_Campus_Manager::get_current_campus_id();
SQL Filtering
// For custom tables โ returns " AND i.campus_id = 3" or ""
$where = IK_Campus_Manager::get_campus_where_clause('i');
// For WordPress posts โ returns meta query fragments
$filter = IK_Campus_Manager::get_campus_sql_filter();
$join = IK_Campus_Manager::get_campus_join_clause();
Campus Switcher
Super Admins access the switcher from Admin Bar (location icon dropdown), Dashboard (inline form dropdown), or URL parameter (?campus_id=X). Campus selection persists via 1-hour transient.
Transient Persistence
set_transient('ik_current_campus_' . $user_id, $campus_id, HOUR_IN_SECONDS);
$saved = get_transient('ik_current_campus_' . $user_id);
Database Schema
40+ custom tables powering every module of InstitutionKit.
Table Organization
| Module | Tables | Key Tables |
|---|---|---|
| Fee Management | 5 | institutionkit_fee_types, institutionkit_fee_structures |
| Invoicing | 4 | institutionkit_invoices, institutionkit_transactions |
| Attendance | 2 | institutionkit_attendance, institutionkit_staff_attendance |
| Gradebook | 4 | ik_grades_v2, ik_periods, ik_grade_scales |
| Exams | 4 | ik_exam_types, ik_exam_schedules, ik_exam_results |
| Payroll & Expenses | 9 | institutionkit_staff, institutionkit_payroll |
| Campus | 3 | institutionkit_campuses, institutionkit_campus_users |
| Communications | 5 | institutionkit_announcements, institutionkit_events |
| Meetings | 3 | institutionkit_meeting_slots, institutionkit_meeting_bookings |
| Homework | 2 | institutionkit_homework, institutionkit_homework_submissions |
Key Unique Constraints
| Table | Constraint | Prevents |
|---|---|---|
institutionkit_staff_attendance | (staff_id, attendance_date) | Duplicate daily attendance |
ik_grades_v2 | (student_id, subject_id, period_id) | Duplicate grades per period |
ik_exam_results | (schedule_id, student_id) | Duplicate exam results |
institutionkit_payroll | (staff_id, campus_id, payroll_month) | Duplicate monthly payroll |
Custom Post Types & Taxonomies
5 CPTs and 2 taxonomies for core educational entities.
Custom Post Types
| CPT | Supports | Purpose |
|---|---|---|
ik_student | title, thumbnail | Student records with 20+ meta fields |
ik_class | title | Class/grade levels (hierarchical) |
ik_exam | title | Legacy exam posts (superseded by Exam Pro tables) |
ik_certificate | title | Certificate design templates |
ik_period | title | Grading periods with type, dates, weight, published status |
Taxonomies
| Taxonomy | Type | Assigned To |
|---|---|---|
ik_subject | Hierarchical | ik_class |
ik_section | Non-hierarchical (flat) | ik_class |
The ik_teacher CPT was removed in v1.2.0. All staff data now resides in institutionkit_staff table.
Security Model
7-layer security architecture protecting every aspect of the system.
Security Layers
- WordPress Authentication โ Every page requires valid login
- Role Verification โ Role-specific access checks
- Capability Enforcement โ 62 granular capabilities
- Campus Boundary โ SQL-level data isolation
- Nonce Verification โ CSRF protection on all forms
- Data Sanitization โ All input sanitized before processing
- SQL Escaping โ All queries use
$wpdb->prepare()
Capability Check Pattern
private function verify_access($caps) {
if (current_user_can('manage_options')) return;
if (is_string($caps) && current_user_can($caps)) return;
if (is_array($caps)) {
foreach ($caps as $cap) {
if (current_user_can($cap)) return;
}
}
wp_die('Permission denied.');
}
Dashboard
Command center with real-time stats, attendance, financial summaries, and quick actions.
The dashboard displays 4 key stat cards (Students, Teachers, Classes, Subjects), today's attendance for both students and staff with clickable drill-downs, a 7-day attendance trend chart, fee management summary (outstanding, collected, overdue, collection rate), announcements, upcoming events, performance charts, outstanding fees by class, recent payments, and 9 quick action buttons.
Fee Summary Cards
| Card | Formula |
|---|---|
| Total Outstanding | SUM(total_amount - amount_paid) WHERE status != 'paid' |
| Total Collected (MTD) | SUM(transactions) for current month |
| Overdue Invoices | COUNT WHERE due_date < today AND status != 'paid' |
| Collection Rate | (Collected รท Total Billed) ร 100 |
Student Management
Complete student lifecycle โ admission, attendance, promotion, certificates.
The Student Management dashboard provides 12 action cards: All Students, Add New Student, New Admission, Homework, Student Attendance, Gradebook, Campus Transfer, Student Promotion, Assign Homework, All Grading Periods, Certificates, and Attendance Report.
Student Meta Fields
Students are stored as ik_student posts with 20+ meta fields including class, campus, roll number, date of birth, gender, guardian information, parent contacts, address, and emergency contact.
New Admission
Process new student enrollments with full data collection.
Access via Student Management โ New Admission (admin) or [institutionkit_admission_form] shortcode (frontend). The form collects student information (name, DOB, gender, class), guardian details, parent contacts, ID card (validated as 13-digit), and address.
Validation Rules
| Field | Rule |
|---|---|
| Student Name | Required, min 2 characters |
| Date of Birth | Required, valid date |
| Valid email format | |
| ID Card | 13-digit numeric, no dashes |
| Contact | At least one parent contact required |
Student Attendance
Daily attendance tracking with four status options.
Access via Student Management โ Attendance (admin) or [institutionkit_attendance] shortcode (frontend). Status options: Present, Absent, Late, On Leave. Remarks field dynamically shown for Late/Leave status.
Teachers are campus-restricted via primary_campus_id from the staff table. After saving, the frontend form becomes read-only showing who submitted and when.
Student Promotion
End-of-year class advancement with full history tracking.
Promotions move students between classes and record the transition in ik_student_promotions with academic year, performance percentage, status (promoted/retained), and the promoting user. Supports bulk promotion and individual promotion with manual override.
Certificates
Generate Leaving, Character, Achievement, and Employment certificates.
Four certificate types supported: Leaving Certificate, Character Certificate, Achievement Certificate, Employment Certificate. Each certificate gets a unique number. Public verification available via [ik_certificate_verify] shortcode.
Teacher & Staff Management
Complete staff lifecycle โ hiring, contracts, attendance, meetings.
All staff are stored in institutionkit_staff table (not WordPress posts). 8 predefined roles: Permanent Teacher, Visiting Teacher, Campus Head, Office Staff, Roving Admin, Maintenance, Security, Other. Teaching roles automatically get WordPress user accounts with welcome emails.
Staff Records
Add, edit, and manage all staff members.
The Add/Edit Staff modal includes 7 sections: Personal Information, Profile Photo (WordPress media library), Salary Information (dynamic fields per contract type), Bank Details, Emergency Contact, Salary Components (flexible earnings/deductions), and Loans. Employee codes auto-generate as EMP{YY}{XXXX}.
Contract Types
| Type | Payroll Basis | Attendance Impact |
|---|---|---|
| Monthly Fixed | Fixed salary minus absence deductions | First absence free, then per-day deduction |
| Hourly | Hours worked ร hourly rate | Direct โ unpaid for hours not worked |
| Per Lecture | Lectures ร lecture rate | Direct โ unpaid for undelivered lectures |
Staff Attendance
Daily staff attendance with time tracking.
Records check-in, check-out, hours worked, and lectures delivered. Status options: Present, Absent, Half Day, Leave. Check-in/out auto-filled from school operating hours. Emergency contact displayed for Absent/Leave status. Bulk actions: Mark All Present/Absent/Leave.
Parent-Teacher Meetings
Slot creation, parent booking, topic management, and feedback.
Teachers create availability slots with date, time, duration, max bookings, and location. Parents book via Parent Portal with topic selection. 10 predefined discussion topics included. Booking increments current_bookings; slots auto-mark as "Full" when capacity reached.
Teacher Comments
Two-way communication between teachers and parents.
Teachers leave comments about students with type classification (General, Academic, Behavioral, Attendance). Parents view comments in Parent Portal and can respond. Read status tracked. Comments reference staff_id from the staff table.
Fee Management
Complete financial lifecycle โ fee types, structures, invoices, payments.
Four action cards: Fee Types (define categories), Fee Structures (group types with amounts per class), Assign Fees (apply to students individually or by class), Invoices (generate and manage bills). Auto monthly invoice generation via cron on the 1st of each month at 06:00.
Fee Types
Define categories of fees your institution charges.
Simple name-based definition. Common types: Tuition Fee, Admission Fee, Exam Fee, Transport Fee, Library Fee, Sports Fee, Computer Lab Fee, Development Fee. Fee types flow through: Types โ Structures โ Student Assignments โ Invoice Items.
Fee Structures
Group fee types with amounts into reusable billing templates.
Example: "Primary Monthly Fees" = Tuition (3,500) + Transport (1,000) + Library (200) = 4,700. Structures can differ per class level, campus, or academic year. Assigned to students individually or by class/campus.
Invoices
Generate, track, and manage student invoices with PDF download.
Invoice status flow: Unpaid โ Partial โ Paid. Payment recording validates against balance due โ cannot overpay. AJAX payment updates UI dynamically. PDF download with Dompdf. Overdue reminders via cron and manual trigger. Campus-restricted for staff.
Invoice Status Colors
| Status | Color |
|---|---|
| Paid | Green (#28a745) |
| Unpaid | Red (#dc3545) |
| Partial | Yellow (#ffc107) |
Exams Management
Complete examination system โ 7 categories, scheduling, verification workflow.
Workflow: Create Exam Types โ Schedule Exams โ Enter Results โ Verify โ Publish โ Generate Report Cards โ Analytics. Results workflow: Draft โ Submitted โ Verified โ Published. 7 categories: Term, Midterm, Final, Monthly, Board, Quiz, Assessment.
Exam Types
Define exam categories with marks and weight configuration.
Properties: Name, Category (7 types), Max Marks (default 100), Weight Percentage (for final calculation). Soft delete protection โ types used in schedules are deactivated instead of deleted. Campus-scoped.
Exam Schedule
Create date sheets with subjects, times, rooms, and invigilators.
Fields: Exam Type, Class, Subject, Date, Start/End Time, Room Number, Invigilator, Max Marks, Passing Marks. Status: Draft or Published. Published schedules appear in result entry dropdowns.
Result Entry
Enter marks, verify, and publish exam results.
Grade auto-calculation as marks are entered. Status workflow: Draft (teacher editing) โ Submitted (ready for verification, locked) โ Verified (checked by verifier) โ Published (visible to students/parents). Unique constraint: one result per student per exam schedule.
Report Cards
Generate comprehensive report cards with PDF download.
Includes: Student info, subject-wise marks, total, percentage, GPA, class rank, attendance percentage, teacher/principal remarks. Supports individual and bulk generation. PDF via Dompdf with watermark.
Exam Analytics
Class performance, subject analysis, student tracking, comparisons.
Four views: Class Performance (averages by class), Subject Analysis (performance by subject), Student Performance (individual progress tracking), Comparative Analysis (cross-exam/cross-campus comparison). Data sourced from exam results, schedules, and report cards.
Payroll & Expenses
Complete financial suite โ payroll, expenses, budgets, collections.
Module architecture uses 12 traits: Core_Setup, Render_Dashboard, Render_Expenses, Render_Staff, Render_Payroll, Render_Financial, Ajax_Handlers, Helpers, Salary_Structure, Loans, Payslips, PDF_Export. 18 AJAX endpoints registered. Dashboard data cached for 5 minutes via transients.
Payroll Dashboard
Financial overview with stats, charts, comparisons, and alerts.
Four stat cards: Revenue (MTD), Expenses (MTD), Payroll (MTD), Net Surplus. Charts: Monthly trend (6 months), Expense breakdown (top 5 heads), Campus comparison. Automated alerts: budget overruns, unbudgeted expenses, large transactions, missing recurring, spending spikes.
Staff Management (Payroll)
Employee records with contracts, salary components, and loans.
Staff modal with 7 sections. Auto-account creation for teaching/admin roles with welcome email. Employee codes: EMP{YY}{XXXX}. Flexible salary components (earnings + deductions). Complete loan management with EMI auto-calculation and payroll deduction.
Payroll Processing
Generate monthly payroll with automatic calculations.
Payroll = Base Salary (from contract) + Salary Components - Attendance Deductions - Loan Deductions - Income Tax. Income tax brackets: 0% (โค50k), 2.5% (50k-100k), 12.5% (100k-167k), 17.5% (167k-233k), 22.5% (233k-300k), 27.5% (>300k). Loan installments auto-processed on payroll generation.
Expense Management
Record, approve, and track all campus expenditures.
Payment sources: Campus Petty Cash, Central Admin, Split. Approval tiers: Level 1 (โค10k), Level 2 (10k-50k), Level 3 (>50k). Status flow: Pending โ Approved โ Reimbursed (or Rejected). 15 default expense heads created on installation. Severity flags: Green (routine), Yellow (important), Red (emergency).
Budget Management
Set monthly spending limits and track actuals per expense head.
One budget per campus + expense head + month (unique constraint). Status indicators: On Track (<80% used), Near Limit (80-99%), Over Budget (โฅ100%). Summary cards: Total Budget, Actual Spent, Remaining, Utilization %. Alerts trigger at 90% and 100% of budget.
Payslips
Detailed salary statements โ HTML view and PDF download.
Payslip sections: Employee Info, Attendance Summary (5 badges), Earnings breakdown, Deductions breakdown (absent, tax, loans, components), Net Payable. PDF via Dompdf with "PAYSLIP" watermark. Amounts rounded to nearest 10. Print-optimized CSS. Working days exclude Sundays.
Gradebook
Multi-period grading system with automatic grade calculation.
Uses ik_grades_v2 table with unique constraint (student_id, subject_id, period_id). Grading periods: Weekly, Monthly, Quarterly, Yearly, Exam. Weighted average formula: SUM(Percentage ร Weight) / SUM(Weights). Frontend gradebook via [institutionkit_gradebook] shortcode with real-time calculation, bulk operations, and keyboard navigation.
Grading Periods
Time frames for assessing student performance.
5 period types with configurable weights: Weekly (0.25-0.50), Monthly (1.00), Quarterly (1.50-2.00), Yearly (3.00-5.00), Exam (2.00-3.00). Meta box fields: type, start/end date, academic year, weight, published status. Published periods make grades visible to students/parents.
Grade Scales
Percentage-to-grade mapping with GPA points.
Default 11-point scale: A+ (90-100, GPA 4.00) through F (0-49, GPA 0.00). Campus-specific scales supported. Scale cache via wp_cache with 1-hour expiry. Frontend gradebook uses simplified scale: A++ (98+), A+ (95+), A (90+), B (80+), C (65+), D (55+/40+), F (<40).
Grade Entry
Teacher interface for entering student marks.
Filter by period type, period, class, section, subject. Real-time percentage and grade calculation. Bulk operations: Fill All Marks, Set Max Marks, Apply Global Max. Keyboard navigation: Enter moves to next student; last student submits. AJAX save with upsert logic. Campus-restricted for teachers.
Homework Management
Create, assign, submit, and grade homework.
Fields: Class, Section, Subject, Title, Description, Attachment, Due Date. Recurring homework support (Daily/Weekly/Monthly with interval). Status: Active, Archived. Submission tracking with grade and feedback. Parents view via Parent Portal.
Parent Portal
Standalone application for parent access to student data.
Accessed at /parent-portal.php. Bypasses WordPress theme entirely. Sections: Student Profile, Academic Performance (dynamic โ weekly/monthly/yearly/fallback), Homework, Teacher Comments (two-way), Fee Invoices, Upcoming Meetings (with booking). 4 AJAX endpoints for meetings and comments. Role-restricted to parent role only.
Frontend Modules
Public-facing modules extending InstitutionKit to your website.
| Module | Shortcode | Users |
|---|---|---|
| Admissions | [institutionkit_admission_form] | Public |
| Attendance | [institutionkit_attendance] | Teachers |
| Gradebook | [institutionkit_gradebook] | Teachers |
| Invoices | [ik_invoices] | Staff |
| Certificate Verify | [ik_certificate_verify] | Public |
All modules follow singleton pattern with campus restriction, nonce verification, and input sanitization.
Hooks & Filters
Extend InstitutionKit without modifying core files.
Available Hooks
| Hook | Type | When Fires |
|---|---|---|
ik_exam_type_deleted | Action | Exam type permanently deleted |
ik_show_parent_stats | Filter | Dashboard parent stats widget |
Recommended custom hooks: ik_student_created, ik_student_promoted, ik_invoice_generated, ik_payment_recorded, ik_payroll_generated, ik_attendance_saved.
AJAX Endpoints
Complete reference of all AJAX handlers.
Exams Module
Centralized via ik_exam_ajax_handler with method parameter. 20+ methods: save_exam_type, save_schedule, save_results, verify_results, publish_results, generate_report_card, get_class_performance, etc.
Payroll Module
18 separate actions: ik_add_expense, ik_get_expenses, ik_approve_expense, ik_reject_expense, ik_add_staff, ik_generate_payroll, ik_get_payroll, ik_get_financial_summary, ik_get_dashboard_data, ik_add_loan, ik_get_payslip, etc.
Parent Portal
4 actions: ik_parent_get_upcoming_meetings, ik_parent_get_available_slots, ik_parent_book_meeting, ik_parent_respond_comment.
Database Tables Reference
Quick lookup for all 40+ custom tables.
All tables use WordPress prefix. Key relationships: institutionkit_staff links to attendance, salary components, loans, payroll, and meeting slots. wp_posts (ik_student) links to attendance, invoices, grades, exam results, report cards, parent links, and teacher comments. institutionkit_invoices links to invoice items and transactions.
Capabilities Reference
All 62 custom capabilities by module and role.
| Module | Capabilities |
|---|---|
| Students | 5 (manage, view, edit, delete, admissions) |
| Staff | 3 (manage, attendance, reports) |
| Fees | 5 (manage, view invoices, generate, record, email) |
| Exams | 7 (types, schedule, enter, verify, publish, cards, analytics) |
| Payroll | 13 (expenses, approve, reports, heads, staff, payroll, approve, reports, budgets, comparison, P&L, all-campus, export) |
| Gradebook | 2 (manage, view) |
| Homework | 5 (assign, edit, delete, view all, grade) |
| Meetings | 5 (slots, view bookings, manage bookings, book, view own) |
| Campus | 11 (manage, view all, manage campus, switch, dashboard, students, teachers, fees, attendance, gradebook, settings) |
| System | 3 (settings, backup, license) |
Shortcodes Reference
All available shortcodes for frontend integration.
| Shortcode | Module | Auth Required |
|---|---|---|
[institutionkit_admission_form] | Admissions | No |
[institutionkit_attendance] | Attendance | Teacher/Campus Admin |
[institutionkit_gradebook] | Gradebook | Teacher/Campus Admin |
[ik_invoices] | Invoices | Staff with campus |
[ik_certificate_verify] | Certificate Verify | No |
[ik_student_grades] | Student Grades | Student/Parent |
Extending InstitutionKit
Best practices for custom development and integration.
Extension Methods
- WordPress Hooks โ Add behavior at specific points
- Filter Hooks โ Modify data before output
- Class Extension โ Add features to existing modules
- Database Extension โ Add custom tables and CRUD methods
Best Practices
- Never modify core plugin files
- Check for class existence with
class_exists() - Respect campus boundaries using
IK_Campus_Manager - Use proper nonces in all custom handlers
- Sanitize ALL input, escape ALL output
- Capability-check everything with
current_user_can()
Troubleshooting
Solutions for common issues.
Common Issues
| Issue | Solution |
|---|---|
| Tables not created | Settings โ System Status โ Recreate Tables |
| Memory exhausted | Set WP_MEMORY_LIMIT to 256M |
| Campus Admin sees no data | Check user has campus_admin without administrator |
| Payroll returns 0 records | Check active staff, contract types, existing payroll for month |
| Duplicate grades | Verify unique constraint on ik_grades_v2 |
| PDF not generating | Check Dompdf exists at /includes/lib/dompdf/ |
| AJAX returns 0 | Check nonce, user logged in, action name matches |
Changelog
Version history and upgrade notes.
v1.2.1 (Current)
License banner improvements, dashboard optimizations, bug fixes.
v1.2.0
Major: Teacher CPT removed โ all staff in institutionkit_staff table. Payroll module (12 traits, 18 AJAX endpoints). Expense management with approval workflow. Budget planning. Staff loans with EMI. Payslips (HTML + PDF). Multi-campus financial comparison. Financial alerts. 12 new database tables.
v1.1.0
Multi-campus support. Gradebook Pro (v2). Exam Pro module. Homework. Meetings. Announcements & Events. 20+ new database tables.
v1.0.0
Initial release. Student management, fee management, attendance, basic gradebook, email notifications, settings.