WP Manifestindependent plugin directory
manifest / users / certificate-verifier-pro

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

0stars
1forks

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.zip

Certificate 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

  1. Upload the certificate-verification folder to /wp-content/plugins/
  2. Activate the plugin through the 'Plugins' menu in WordPress
  3. Go to 'Certificates' menu in WordPress admin to start adding certificates

Usage

Adding Certificates

  1. Navigate to Certificates > Add New in WordPress admin
  2. Fill in the required fields:
    • Certificate ID (unique identifier)
    • Student Name
    • Issue Date
  3. Optional fields:
    • Certificate Type
    • Course/Program Name
    • Expiry Date
    • Additional Information
    • Status (Active/Revoked)
  4. 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 key
  • certificate_id - Unique certificate identifier
  • student_name - Name of certificate recipient
  • issue_date - Date certificate was issued
  • certificate_type - Type of certificate
  • course_name - Associated course or program
  • status - Certificate status (active/revoked/deleted)
  • expiry_date - Optional expiration date
  • additional_info - Additional notes
  • created_at - Record creation timestamp
  • updated_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 insertion
  • cert_verify_after_insert - After certificate insertion
  • cert_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