Certificate Verifier Pro
A comprehensive certificate verification system for WordPress. It allows you to create, manage, and verify certificates issued to students on your website.
by Kaytech IT · github.com/kayode-lateef/certificate-verifier-pro · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/kayode-lateef/certificate-verifier-pro/archive/refs/heads/main.zipCertificate Verification System
A comprehensive WordPress plugin for managing and verifying certificates issued to students.
Features
- Certificate Management: Add, view, and delete certificates from WordPress admin
- Public Verification: Allow visitors to verify certificates using unique certificate IDs
- Security: Built-in nonce verification, input sanitization, and rate limiting
- AJAX-Powered: Smooth verification process without page reloads
- Responsive Design: Mobile-friendly verification form
- Status Management: Support for active, revoked, and expired certificates
Installation
- Upload the
certificate-verificationfolder to/wp-content/plugins/ - Activate the plugin through the 'Plugins' menu in WordPress
- Go to 'Certificates' menu in WordPress admin to start adding certificates
Usage
Adding Certificates
- Navigate to Certificates > Add New in WordPress admin
- Fill in the required fields:
- Certificate ID (unique identifier)
- Student Name
- Issue Date
- Optional fields:
- Certificate Type
- Course/Program Name
- Expiry Date
- Additional Information
- Status (Active/Revoked)
- Click "Add Certificate"
Displaying Verification Form
Add the verification form to any page or post using the shortcode:
[certificate_verification]
Shortcode Attributes
Customize the form with these optional attributes:
[certificate_verification
title="Custom Title"
description="Custom description text"
placeholder="Enter your certificate number"
button_text="Verify Now"
]
Managing Certificates
- View all certificates: Certificates > All Certificates
- Search certificates by ID or student name
- Delete certificates (soft delete - marks as deleted)
- Pagination for large certificate lists
Technical Details
Database Structure
The plugin creates a custom table wp_certificates with the following fields:
id- Auto-increment primary keycertificate_id- Unique certificate identifierstudent_name- Name of certificate recipientissue_date- Date certificate was issuedcertificate_type- Type of certificatecourse_name- Associated course or programstatus- Certificate status (active/revoked/deleted)expiry_date- Optional expiration dateadditional_info- Additional notescreated_at- Record creation timestampupdated_at- Last update timestamp
Security Features
- Nonce Verification: All AJAX requests verified with WordPress nonces
- Input Sanitization: All user inputs sanitized before database operations
- Prepared Statements: SQL injection prevention through WordPress $wpdb
- Rate Limiting: IP-based rate limiting (10 requests per 15 minutes by default)
- Capability Checks: Admin functions restricted to users with 'manage_options'
AJAX Endpoints
verify_certificate- Public endpoint for certificate verification
Development
File Structure
certificate-verification/
├── certificate-verification.php (Main plugin file)
├── includes/
│ ├── class-database.php (Database operations)
│ ├── class-admin.php (Admin interface)
│ ├── class-public.php (Public shortcode)
│ ├── class-ajax-handler.php (AJAX processing)
│ └── class-security.php (Security functions)
├── admin/
│ ├── css/
│ └── js/
├── public/
│ ├── css/
│ │ └── public-style.css
│ └── js/
│ └── public-script.js
└── README.md
Hooks and Filters
The plugin provides several hooks for customization:
cert_verify_before_insert- Before certificate insertioncert_verify_after_insert- After certificate insertioncert_verify_verification_result- Filter verification result
Requirements
- WordPress 5.0 or higher
- PHP 7.4 or higher
- MySQL 5.6 or higher
Changelog
Version 1.0.5 (2026-01-13) - Data Preservation Update
- IMPORTANT: Certificate data now preserved when plugin is deleted
- Modified uninstall.php to keep certificate table intact
- Allows safe testing, reinstallation, and migration
- Only plugin settings and cache are removed on deletion
- Certificates remain in database permanently unless manually deleted
Version 1.0.4 (2026-01-13) - JavaScript Localization Fix
- Fixed JavaScript variable name mismatch (certVerify → certVerifier)
- Resolved "certVerifier is not defined" error
- AJAX verification now works correctly
- Form submission functional
- Loading states working properly
- All features fully operational
Version 1.0.3 (2026-01-13) - HTML Class Name Update
- Fixed HTML class names to match JavaScript selectors
- Updated form template from cert-verify- to cert-verifier-
- Form submission now properly intercepted by JavaScript
- Resolved verification form not responding to clicks
Version 1.0.2 (2026-01-13) - Database Enhancement
- Enhanced database error handling and logging
- Auto-creates database table if missing
- Fixed dbDelta compatibility (removed IF NOT EXISTS)
- Better error messages for debugging
- More specific error reporting in admin
- Fixed DEFAULT CURRENT_TIMESTAMP syntax for strict mode
Version 1.0.1 (2026-01-13) - Admin Interface Fix
- Fixed admin page slugs (cert-verify- → cert-verifier-)
- Updated all internal navigation links
- Added success/error message displays
- Fixed form submission redirects
- Fixed "Add New" and "Cancel" button links
- Certificate addition now works correctly
Version 1.0.0 (2026-01-13) - Initial Release
- Basic certificate management (Add, View, Delete)
- Public verification form via shortcode
- AJAX-powered verification
- Rate limiting (10 attempts per 15 minutes)
- Security features (nonces, sanitization, prepared statements)
- Responsive design
- Mobile-friendly interface
- Status management (Active, Revoked)
- Search functionality
- Pagination support
Support
For support and feature requests, please contact the plugin author.
License
GPL v2 or later