Hooks & Filters
The PHP extension points and stored data available in Kanbanz 1.0.1.
Note: Kanbanz 1.0.1 has no shortcodes, no front-end embed and no REST API routes. The interface runs in wp-admin and uses admin-ajax.php with nonces. The filters below are the supported way to customise it. Kanbanz does not fire its own action hooks for task events. For those, hook WordPress core actions on the kanbanz_task post type, such as save_post_kanbanz_task or updated_post_meta for task_status.
Filters
kanbanz_board_templates
Add, change or remove the templates shown on Add New Board. Each template is keyed by a unique slug.
add_filter('kanbanz_board_templates', function ($templates) {
$templates['bug_tracker'] = array(
'key' => 'bug_tracker',
'name' => __('Bug Tracker', 'my-plugin'),
'description' => __('Triage and fix reported bugs.', 'my-plugin'),
'statuses' => array('Reported', 'Triaged', 'Fixing', 'Verified', 'Closed'),
'color' => '#ef4444',
);
unset($templates['hr_onboarding']); // hide a built-in template
return $templates;
});
The last entry in statuses becomes the board's “completed” column.
kanbanz_boards_per_page
The maximum number of boards loaded on the listing and in board pickers. Default: 100.
add_filter('kanbanz_boards_per_page', function () { return 250; });
kanbanz_tasks_per_page
The number of tasks loaded per column when a board opens. It receives the value from Settings → Tasks Per Column / Page.
add_filter('kanbanz_tasks_per_page', function ($per_page) { return 30; });
kanbanz_analytics_max_range_days
The largest date range, in days, that an analytics query will process. Default: 366. Longer ranges are cut off at this limit to protect memory. Return 0 to remove the cap (not recommended).
add_filter('kanbanz_analytics_max_range_days', function () { return 730; });
kanbanz_ticket_url_base
The base URL for “open ticket” links on Deskuss-linked tasks. The Deskuss bridge sets it from Deskuss's URL slug. Override it if your helpdesk lives elsewhere.
Deskuss actions Kanbanz listens to
These actions are fired by Deskuss, not by Kanbanz. They are listed here so you know which Deskuss events change your boards.
deskuss_wp_create_task ($ticket)
deskuss_wp_sync_task_assignment ($ticket_id)
deskuss_wp_sync_task_unassignment ($ticket_id)
deskuss_wp_sync_task_status ($ticket_id, $status_id, $status_state)
deskuss_wp_sync_ticket_event ($ticket_id, $state, $data)
deskuss_wp_close_task ($ticket_id)
deskuss_wp_ticket_replied ($ticket_id, $response_id)
deskuss_wp_ticket_message ($ticket_id, $message_id)
deskuss_wp_add_department ($dept, $post_data)
deskuss_wp_update_department ($dept, $post_data)
deskuss_wp_delete_department ($dept_id)
Data reference
Post types
| Post type | Notes |
|---|---|
kanbanz_board | Title = board name, content = description. |
kanbanz_task | post_parent = board ID, title = task name, content = description. |
Common meta keys
| Key | On | Holds |
|---|---|---|
board_statuses | Board | Ordered array of column names |
kanbanz_wip_limits | Board | column => limit map |
kanbanz_team_association | Board | Array of team member logins |
kanbanz_board_managers | Board | Array of assigned manager logins |
kanbanz_completion_mode | Board | everyone, managers or custom |
kanbanz_completion_allowed_users | Board | Logins allowed to complete tasks in custom mode |
deskuss_dept_link | Board | Linked Deskuss department ID |
kanbanz_sla_config | Board | Pro: SLA rules (status_name, target_hours, warning_hours) |
task_status | Task | Current column name |
priority | Task | Priority level |
due_date | Task | Due date |
kanbanz_link_ticket | Task | Linked Deskuss ticket number |
kanbanz_time_entries | Task | Pro: time log entries |
Options
| Option | Holds |
|---|---|
kanbanz_settings | General and notification settings |
kanbanz_version / kanbanz_pro_version | Installed versions, used by the update checks |
kanbanz_cron_enabled | Deskuss auto-sync on/off |
kanbanz_dept_delete_policy, kanbanz_dept_reassign_board | What happens when a Deskuss department is deleted |
kanbanz_last_cron_sync | Time and results of the last sync |
kanbanz_pro_license | Pro license data |
Treat stored data as internal. Meta keys may change between versions. Prefer the filters above, and test after every update if you read meta directly.