The WPJM Applications Kanban plugin (v0.6.2) is an add-on to the WP Job Manager Applications add-on. It replaces the employer’s vertical list of applications for a job (the job dashboard’s ?action=show_applications&job_id= view) with a drag-and-drop Kanban board, one column per application status. The Applications add-on itself is not modified, so it can be updated normally.
How it hooks in:
The add-on renders the view via job_manager_job_dashboard_content_show_applications → show_applications(), which loads the job-applications.php template. The plugin swaps that template for its own board template using WPJM core’s job_manager_locate_template filter (priority 20, so it wins over the child theme’s override). The add-on’s job_manager_job_applications_args filter is used to remove paging (posts_per_page = -1) on the dashboard view only; the CSV export is untouched. A wpjm-kanban-view body class scopes the layout CSS. The add-on’s add_breadcrumb_to_the_title() filter turns the page title into “Job Applications « Manage Jobs”; a later the_title filter (priority 20) replaces it with “Manage Application”, only for the dashboard page’s own title in the loop on action=show_applications (menus, widgets and other titles are untouched).
Columns:
Columns come from get_job_application_statuses() (filterable with job_application_statuses) minus Archived: New, Interviewed, Offer extended, Hired, Rejected. Archived applications stay hidden, as in the original view, and can still be managed in wp-admin. Legacy applications with a publish status land in the first column.
Cards:
Each card is rendered by the plugin’s kanban-card.php but keeps the add-on’s li.job-application markup, section classes and toggle link classes, so the add-on’s own application-dashboard.js still drives Details and Notes (including adding/deleting notes over AJAX). Compared with the original card:
- No avatar; smaller name (linked to the online resume when one exists).
- Rating is five clickable stars on the card (click the current rating again to clear). Saves to the same
_ratingmeta the add-on’s Edit form used. - The Edit action is removed (its status dropdown duplicated the board and its rating input is replaced by the stars).
- The Email (mailto) action is removed.
- Details no longer shows the cover note twice. The apply handler saves the message both as
post_contentand as a meta field named after its form label; the card only printspost_contentif that text isn’t already in the meta list. - Delete is a trash icon in the action row. It uses the add-on’s own
delete_job_applicationlink and nonce, so it runs the add-on’sdelete_handler()(permission check, then permanentwp_delete_post( $id, true )including uploaded files) with the add-on’s confirm prompt. - The sort dropdown and status filter are removed; cards are newest first within each column.
Drag and drop / AJAX:
SortableJS 1.15.6 is bundled (touch-friendly; no CDN). Reordering within a column is disabled; only moves between columns persist. Two admin-ajax endpoints, wpjm_kanban_move and wpjm_kanban_rate, share a nonce and the same permission check as the add-on’s can_edit_application() (job_manager_user_can_edit_job() on the parent job). A move calls wp_update_post() with the new post_status, validated against the board statuses; a failed save reverts the card.
Automatic status notes removed (site-wide):
The add-on’s WP_Job_Manager_Applications_Post_Types::transition_post_status() adds an “Application status changed from…” note on every status change. The plugin unhooks it via $GLOBALS['job_manager_applications']->post_types and re-adds only its other behaviour: moving an application to Hired marks the job filled (_filled = 1, still filterable with job_application_hired_fills_job). Employer-written notes are unaffected. This applies everywhere, including status changes in wp-admin. No emails are sent on status changes (the add-on never sent any).
Layout:
Above the board, a top bar holds a “← Manage Jobs” link (left) and Download CSV (right), followed by the job title on its own line as a large heading linked to the listing, so the employer always sees which job is being managed. The “← Manage Jobs” link replaces the sidebar navigation, which is hidden on this view.
Columns share the available width (CSS grid, scrolling sideways only below 150px per column). The board has a min-height of 70vh so the page keeps a normal height even with no applications, and columns stretch to the full board height so the whole column is a drop target. On the board view the left sidebar of the Manage Jobs page (post 119) is hidden and its grid collapsed to one column.
Critical Configuration Note:
The sidebar CSS targets the GenerateBlocks element IDs .gb-element-91e6ea90 (grid) and .gb-element-74118cbd (sidebar) on the Manage Jobs page, scoped to the wpjm-kanban-view body class. If that page layout is rebuilt, update those IDs in assets/kanban.css. Dashicons (loaded by the add-on’s frontend CSS) provide the action icons.