WordCamp Certificate Generator
A WordPress Plugin for generating WordCamp Certificates
by Jhimross · github.com/jhimross/wordcamp-certificate · 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/jhimross/wordcamp-certificate/archive/refs/heads/main.zipReadme
WordCamp Certificate Generator
A WordPress plugin that automatically generates a Certificate of Attendance for WordCamp attendees. Attendees simply enter their full name and the email address they used to purchase their WordCamp ticket to instantly receive a beautifully designed, printable certificate.
Screenshots
1. Attendee Enters Their Registration Information
2. Attendee Views Their Certificate
3. Attendee Prints Their Certificate
4. Configuration
5. Issued Certificates List
Features
- Instant certificate generation — attendees fill in their name and email, click submit, and get their certificate immediately
- Beautiful certificate design — Playfair Display typography, gold corner ornaments, event seal, and signature lines
- Print / Save as PDF — one-click browser print with a clean print stylesheet (no server-side PDF library required)
- Duplicate prevention — the same email address always returns the same certificate
- Unique certificate ID — every certificate has a short token-based ID for verification
- Admin certificates log — view all issued certificates with a direct link to each one
- Settings panel — configure event name, date, location, and organizer name from WP Admin
- Shortcode support —
[wordcamp_certificate]works on any page or post - Gutenberg block — drag-and-drop "WordCamp Certificate Form" block with Inspector Controls
- Fully sanitized & secure — nonce-verified AJAX,
sanitize_text_field,sanitize_email, andwpdb->preparethroughout
Requirements
| Requirement | Minimum Version |
|---|---|
| WordPress | 5.8 |
| PHP | 7.4 |
| Browser | Any modern browser (Chrome, Firefox, Safari, Edge) |
Note: The plugin uses
dbDelta()for table creation and is compatible with both MySQL and SQLite (via the WordPress SQLite Database integration).
Installation
Option A — Manual Upload
- Download or clone this repository.
- Copy the
wordcamp-certificatefolder into your site'swp-content/plugins/directory. - In WP Admin, go to Plugins → Installed Plugins.
- Find WordCamp Certificate Generator and click Activate.
Option B — Clone directly into plugins folder
cd wp-content/plugins
git clone https://github.com/YOUR_USERNAME/wordcamp-certificate.git
wp plugin activate wordcamp-certificate
Configuration
After activation, configure the plugin under WP Admin → WC Certificates → Settings:
| Setting | Description | Example |
|---|---|---|
| Event Name | The full name of your WordCamp event | WordCamp Manila 2025 |
| Event Date | Date or date range of the event | July 12–13, 2025 |
| Event Location | City and country (optional) | Manila, Philippines |
| Organizer Name | Appears on the signature line | WordCamp Manila Team |
Usage
Shortcode
Add this shortcode to any page or post:
[wordcamp_certificate]
You can also override event details inline:
[wordcamp_certificate event_name="WordCamp Manila 2025" event_date="July 12, 2025"]
Gutenberg Block
- Open the Block Editor on any page or post.
- Search for "WordCamp Certificate Form" in the block inserter.
- Add the block — it renders a live preview in the editor.
- Use the Inspector Controls (right sidebar) to override the event name and date per-page.
Direct URL
Once a certificate is generated, it lives at a permanent URL:
https://yoursite.com/?wcc_cert=1&token=UNIQUE_TOKEN
This URL can be bookmarked, shared, or re-printed at any time.
File Structure
wordcamp-certificate/
├── wordcamp-certificate.php # Main plugin file — hooks, AJAX, shortcode, block registration
├── assets/
│ ├── frontend.css # Attendee form styles
│ ├── frontend.js # AJAX form submission, inline validation, success state
│ ├── admin.css # WP Admin styles
│ └── block.js # Gutenberg block (editor-side React/wp.element)
├── templates/
│ ├── form.php # Attendee-facing input form
│ ├── certificate.php # Standalone certificate page (no WP theme wrapper)
│ ├── admin.php # Admin certificates list table
│ └── settings.php # Admin settings form
└── README.md
Database
On activation the plugin creates one custom table:
CREATE TABLE wp_wordcamp_certificates (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
full_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
issued_at DATETIME DEFAULT CURRENT_TIMESTAMP,
cert_token VARCHAR(64) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY cert_token (cert_token),
KEY email (email)
);
The table is created with dbDelta() so it is safe to re-activate without data loss.
Security
- All AJAX requests are verified with
wp_create_nonce/check_ajax_referer - User input is sanitized with
sanitize_text_fieldandsanitize_emailbefore processing or storage - All database queries use
$wpdb->prepare()— no raw interpolated SQL - Certificate tokens are generated with
wp_generate_password( 32, false )(cryptographically random) - The certificate template runs outside the WordPress theme loop but does not expose any credentials
Customization
Colors
CSS custom properties are defined at the top of assets/frontend.css and inside the `