Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/gitsanje/emplyoee-manager-plugin/archive/refs/heads/main.zipEmployee Manager is a WordPress plugin for maintaining an employee directory from the WordPress admin area, publishing a searchable frontend directory, importing and exporting CSV files, and exposing employee data through a REST API.
Requirements
- WordPress 6.0 or later
- PHP 8.0 or later
- The plugin's Composer autoloader (
vendor/autoload.php)
Installation
-
Copy the
employee-managerdirectory towp-content/plugins/. -
If the Composer dependencies are not included, run this from the plugin directory:
composer install --no-dev -
In WordPress, open Plugins, activate Employee Manager, and open Employee Manager in the admin menu.
Activation creates the {wordpress_prefix}employee_manager database table. Deactivation does not delete employee data. Uninstalling the plugin removes the table and the core options for pagination, currency, departments, and API access.
Admin Usage
Users with the manage_options capability can access:
- Employees: view, search, filter, edit, delete, and bulk-update employees.
- Add Employee: create an employee record.
- Dashboard: view employee totals and department summaries.
- Import / Export: import employee records from CSV or export filtered records.
- Settings: configure departments, pagination, currency, directory visibility, salary visibility, REST API access, and welcome emails.
An employee requires a name, email address, phone number, department, position, and a non-negative salary. Email addresses and non-empty employee codes must be unique.
Supported statuses are active, inactive, on_leave, and terminated. Supported work locations are onsite, remote, and hybrid.
Frontend Directory
Add the shortcode to any page or post:
[employee_directory]
Supported attributes:
| Attribute | Default | Description |
|---|---|---|
department |
empty | Restrict the initial directory to one department. |
layout |
grid |
Directory layout value passed to the template. |
per_page |
Settings value, normally 12 |
Number of employees per page. |
show_search |
yes |
Show the search control. |
show_filter |
yes |
Show the department filter. |
The directory accepts these query parameters for pagination and filtering: epage, esearch, and edept. Public visitors see active employees only. Salary is hidden from public visitors unless Show Salary on Frontend is enabled; administrators can always see it. If Enable Public Directory is disabled, only administrators can view the directory.
CSV Import and Export
Use Employee Manager > Import / Export. The importer reads the first row as column headers and supports the following standard format:
Employee Code,Name,Email,Phone,Department,Position,Salary,Status,Joining Date,Work Location,Notes
EMP-0101,John Doe,john.doe@example.com,+1 555-0199,Engineering,Senior Developer,85000,active,2024-01-15,hybrid,Lead backend architect
Required CSV values are Name, Email, Phone, Department, Position, and a valid non-negative Salary. The importer also accepts common aliases such as Code, Full Name, Job Title, Hire Date, and Location.
Import behavior:
- Existing records are updated when their email or employee code matches.
- New records are created when no match exists.
- Duplicate employee codes for new records are replaced with a generated unique code.
- Invalid or incomplete rows are skipped and reported.
Exports include the employee fields plus Created At and can be filtered by department and status.
REST API
The API base URL is:
/wp-json/employee-manager/v1
REST API access must be enabled in Settings > REST API & Email Notifications.
| Method | Endpoint | Access | Description |
|---|---|---|---|
GET |
/employees |
Public when the directory is public; otherwise administrators | List employees. |
POST |
/employees |
Administrators | Create an employee. |
GET |
/employees/{id} |
Public when the directory is public; otherwise administrators | Retrieve one employee. |
PUT / PATCH |
/employees/{id} |
Administrators | Update an employee. |
DELETE |
/employees/{id} |
Administrators | Delete an employee. |
GET |
/stats |
Administrators | Retrieve dashboard statistics. |
GET |
/departments |
Public when the directory is public; otherwise administrators | Retrieve configured departments and summaries. |
POST |
/bulk |
Administrators | Delete employees or update their status in bulk. |
List requests support per_page, page, department, search, status, orderby, and order. Non-administrators always receive active employees only. Salary is omitted for non-administrators unless frontend salary visibility is enabled.
Authenticated write requests should use standard WordPress authentication and a REST nonce where applicable:
X-WP-Nonce: <nonce>
Settings Defaults
- Employees per page:
20in admin/API responses,12for the shortcode. - Currency:
USD. - Departments:
Sales, Support, Marketing, Engineering, HR, Finance. - REST API: enabled.
- Public directory: enabled.
- Frontend salary display: disabled.
- Welcome email notifications: disabled.
Uninstall
Uninstalling through WordPress removes the employee table and the core plugin options. Back up employee data before uninstalling.
License
Employee Manager is licensed under the GPL-2.0-or-later license.