
Employee Verification & Document Authentication lets you keep a list of your employees in WordPress, issue letters to them (experience, internship completion, salary certificate and so on), and give each letter a verification ID and QR code. Anyone who receives one of those letters can open your verification page, enter the ID or scan the QR code, and see whether the letter is genuine and still valid. Visitors don’t need an account.
Letters are not saved as static files. They are built from the database each time someone opens them, using your current logo, colours, templates and signature settings. If you change your branding, letters you issued earlier pick up the change too.
The plugin is aimed at HR teams, staffing agencies and small businesses that get verification requests from banks, embassies or new employers and want a faster way to answer them.
Employee management
- Add, edit and delete employees, with an optional profile photo from the Media Library.
- Set each employee’s status to Active, Intern or Former Employee.
- Store joining date, leaving date, internship start and end dates, CNIC, father’s name and a list of completed tasks.
- Search the employee list and filter it by department and status.
- Export the current (filtered) list to CSV. The file includes a UTF-8 BOM so Excel opens it correctly.
- Import employees in bulk from a CSV file.
- Define your own custom fields under Settings and fill them in per employee.
Letters
Two letter types are built in:
- Internship Completion Letter
- Experience Letter
Since 1.4.0 there is also an “Other Letters” menu on the Employees page. These letter types are included:
- Bank Account Opening Letter
- Salary Certificate
- Joining Letter (Letter of Appointment)
- Promotion Letter
- Warning Letter
- Transfer Letter
- Relieving Letter
- No Objection Certificate (NOC)
- Custom Employee Letter (you type the title and body when you generate it)
You can edit any of these or add your own letter types from the Settings screen. No coding is needed.
Every letter gets:
- A 16-character verification ID generated with
random_bytes(). - A QR code that opens the verification page for that letter.
- Your logo, colours, fonts, signature block and footer text.
- An A4 layout you can print or save as PDF from the browser.
Other Letters settings
Go to Employee Verify > Settings > Other Letters to manage letter types. For each type you can set:
- Name and slug. The name is what appears in the Other Letters menu.
- Letter template. Plain text or HTML with
{placeholders}. - Extra fields. Inputs the admin fills in when generating the letter, for example “Monthly Salary” or “Bank Name”. Each field key becomes a placeholder you can use in the template.
- Email subject and body used when the letter is emailed to the employee.
- Status. Inactive types are hidden from the Other Letters menu.
- Allow multiple. Whether one employee can receive more than one letter of this type.
A Reset Templates to Default button restores the bundled templates and email text for the included letter types.
Verification
[evda_employee_verification]shows a lookup form. Visitors can search by employee ID, full name or CNIC (you choose which fields are enabled) and see the employee’s name, photo, position, department, dates and status.[evda_document_verification]shows a form where visitors enter a verification ID. It also reads the ID from the URL (?id=VERIFICATION_ID), which is what the QR codes link to. The result shows the letter type, employee, issue date, whether the letter is valid or revoked, and a link to view the letter.- You can revoke a letter from the Documents screen. Revoked letters show as invalid on the verification page.
Letter customization
- Company logo and header text (address, phone, website).
- Font family, font sizes, line height, colours and page padding.
- Editable templates for the internship and experience letters.
- Optional signature block with signatory name, title and signature image.
- Footer message.
- Options to show or hide the QR code, the page border and shadow, and the title underline.
- A live preview on the Styling tab.
Email notifications
- Optionally email the employee when a letter is issued. The email contains a button that links to the verification page.
- Separate subject and body for each letter type, with placeholders such as
{employee_name},{company},{letter_type}and{verify_url}. - Custom colours for the email template and a “Send Test Email” button.
- The last 100 send attempts are logged in the database.
Emails go through wp_mail(). If they don’t arrive, install an SMTP plugin.
Security
- Admin screens and AJAX actions check nonces and require the
manage_optionscapability. - Queries that include user input go through
$wpdb->prepare(). - Input is sanitized and output is escaped with the standard WordPress functions.
- Letter links include a token generated with
wp_hash(). The letter page refuses requests that don’t carry a valid token.
Placeholders
These placeholders work in letter templates and email bodies:
{employee_name} `{employee_id}` `{father_name}` `{cnic}` `{position}` `{department}` `{company}` `{joining_date}` `{leaving_date}` `{intern_start}` `{intern_end}` `{issue_date}` `{verification_id}` `{verify_url}` `{letter_type}` `{tasks_section}` `{custom_fields}`
For Other Letters, each extra field also becomes a placeholder. A field with the key salary gives you {salary}.
Privacy
The plugin stores the employee data that site administrators enter. It does not include tracking or analytics. The only outside requests are for QR code images, described under External Services below. Those requests contain the verification URL and nothing else.
External Services
The plugin requests QR code images from outside services. These requests are made by your server, not by the visitor’s browser.
QR codes are fetched when a letter is opened and when a verification result is shown on the document verification page. The plugin tries the services below in order and stops at the first one that responds. If neither responds and the PHP GD extension is available, it draws a local placeholder image instead. That placeholder shows part of the verification URL but is not a scannable QR code.
1. goQR.me (api.qrserver.com)
- Purpose: Creates a QR code PNG for a verification URL.
- When it is used: Every time a QR code is needed. This is the first service the plugin tries.
- Data sent: The public verification URL only, for example
https://yoursite.com/document-verification/?id=XXXX. No personal data is sent. - Provider: goQR.me, https://goqr.me
- Terms of use: https://goqr.me/terms-of-use/
- Privacy policy: https://goqr.me/privacy-policy/
2. Google Charts
- Purpose: Backup QR code generator.
- When it is used: Only when the goQR.me request fails.
- Data sent: The public verification URL only. No personal data is sent.
- Provider: Google LLC, https://developers.google.com/chart
- Terms of use: https://developers.google.com/terms
- Privacy policy: https://policies.google.com/privacy
License
This plugin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or any later version.
Screenshots

Employee list with search, filters, the Other Letters menu and the Export CSV button.

Generating an Other Letter, with the extra fields for that letter type.

Settings > Other Letters, where letter types are managed.

Letter type editor: name, template, email settings and extra fields.

A generated A4 letter with QR code and verification ID.

The public document verification page showing a verified letter.

The add/edit employee form.

Settings > Styling with typography, colours and live preview.

