Documentation
Complete reference for Smart Certificate Generator Pro v1.0.0. If you run into anything not covered here, reply to your Stripe purchase receipt email.
Requirements
- WordPress 5.8 or higher
- PHP 7.4 or higher (PHP 8.x fully supported)
- MySQL 5.6+ or MariaDB 10.1+
- TCPDF and PhpSpreadsheet are bundled — no separate installation needed
- An outbound HTTP connection for QR code generation (can be disabled)
Installation
Option A — Upload via WordPress Admin
- Download
smart-certificate-generator-pro.zipfrom your purchase receipt. - In your WordPress admin go to Plugins → Add New → Upload Plugin.
- Choose the ZIP file and click Install Now.
- Click Activate Plugin.
Option B — Manual FTP / SSH
- Unzip the archive.
- Upload the
smart-certificate-generator-pro/folder to/wp-content/plugins/. - Activate from Plugins → Installed Plugins.
What Happens on Activation
When the plugin activates for the first time it:
- Creates the
wp_scg_certificatesdatabase table. - Creates an upload folder at
wp-content/uploads/scg-certificates/. - Creates a Certificate Verification page and saves its ID to settings.
- If a previous internal version is detected (
wp_dka_certificatestable), it is automatically renamed — no data is lost.
General Settings
Go to Certificates → Settings. The settings are split into tabs.
| Setting | Description |
|---|---|
| Company Name | Printed on every certificate. Leave blank to use your site name. |
| Certificate Code Prefix | Uppercase letters only. Codes will look like CERT-A1B2C3D4. Default: CERT. |
| Verification Page | The WordPress page where [scg_verify_certificate] is placed. Auto-set on activation. |
| QR Generator Mode | external_api uses qrserver.com (free, no key needed). Disable to skip QR generation. |
Design & Templates
Under the Design tab you can choose one of four templates:
- Classic — traditional layout with decorative border and centred text.
- Modern — clean two-tone layout with a navy header bar.
- Elegant — serif typography with a thin ornamental border, suited for formal events.
- Simple — minimal plain layout for a corporate/understated look.
All templates respect the same settings: primary colour, font, orientation (portrait / landscape), logos, watermark text, and signatory details.
Logo Placement
You can upload up to three logos: Left, Centre, and Right. Any combination is valid — unused positions are simply omitted.
Orientation
Portrait produces an A4-proportioned vertical certificate. Landscape produces an A4-proportioned horizontal certificate. PDF output respects the chosen orientation.
Signatories
The plugin supports a primary signatory and an optional second signatory.
For each signatory you can set:
- Name — printed below the signature line.
- Title / Role — e.g. "Director of Training".
- Signature Image — upload a PNG/JPG of the signature via the WordPress Media Library. It is rendered above the signature line on the certificate.
The second signatory block is only rendered if a second name is provided.
Email Settings
Under Settings → Email you can customise the delivery email. Available placeholders:
| Placeholder | Replaced with |
|---|---|
{name} | Participant's full name |
{course} | Course / programme name |
{date} | Completion date (formatted) |
{certificate_code} | Unique certificate code e.g. CERT-A1B2C3D4 |
The certificate PDF is attached automatically. HTML email format is used by default.
Manual Entry
- Go to Certificates → Generate.
- Select Manual Entry.
- Fill in participant name, email, course name, and date. Add more rows with + Add Participant.
- Choose whether to send emails immediately.
- Click Generate Certificates.
Bulk via CSV / Excel
- Go to Certificates → Generate → Bulk Upload.
- Upload a
.csv,.xlsx, or.xlsfile (max 5 MB). - The plugin reads the file and previews the parsed rows before generating.
- Click Generate All.
Note: The file must have a header row. See CSV / Excel Format for required columns.
Download & ZIP
From the Certificates list you can:
- Download an individual certificate as HTML or PDF using the row action links.
- Select multiple certificates and use Bulk Download → Download ZIP to get all selected certificates in a single archive.
Verification Page
On activation a page called Certificate Verification is created automatically with the shortcode [scg_verify_certificate] already placed on it.
Visitors can enter a certificate code in the form to verify:
- Recipient name and course
- Issue date and optional expiry date
- Current status: Active, Expired, or Revoked
You can point the verification page to any existing page under Settings → Verification Page.
QR Codes
When a certificate is generated, the plugin calls the free qrserver.com API to generate a QR image linking to the verification page with the certificate code pre-filled. The URL is stored in the database.
The QR block is rendered in the bottom-right corner of the certificate. If the API call fails (e.g. no outbound internet), the column stays null and the certificate renders without a QR block — no error is thrown.
To disable QR generation entirely, set Settings → QR Generator Mode to Disabled.
Shortcode
[scg_verify_certificate]
Place this shortcode on any public WordPress page. The plugin enqueues its frontend CSS only on pages that contain the shortcode.
The shortcode also accepts a URL parameter: append ?cert_code=CERT-XXXXXXXX to pre-fill and auto-submit the form — this is what the QR codes link to.
Certificate Status
Each certificate has one of three statuses:
- Active — valid and verifiable.
- Expired — past the Expires At date (if set).
- Revoked — manually revoked from the certificate list.
Status is shown on the verification page with colour coding (green / amber / red).
CSV / Excel Format
The first row must be a header row. Required columns:
| Column header | Required | Format / notes |
|---|---|---|
name | Yes | Full name of the participant |
email | Yes | Valid email address for delivery |
course_name | Yes | Name of the course or programme |
date | Yes | YYYY-MM-DD format, e.g. 2026-03-15 |
expires_at | No | YYYY-MM-DD — leave blank for no expiry |
Column names are case-insensitive. Extra columns are ignored.
Example CSV:
name,email,course_name,date
Maria Johnson,[email protected],Advanced Project Management,2026-03-15
John Smith,[email protected],Leadership Essentials,2026-03-20
Filter & Action Hooks
Developers can customise behaviour using these WordPress hooks:
| Hook | Type | Description |
|---|---|---|
scg_certificate_email_subject | filter | Modify the certificate email subject line. Receives $subject and $data array. |
scg_certificate_email_message | filter | Modify the email body HTML. Receives $message and $data array. |
scg_certificate_email_headers | filter | Modify the email headers array. |
Example — customise the email subject:
add_filter( 'scg_certificate_email_subject', function( $subject, $data ) {
return 'Your certificate for ' . $data['course_name'] . ' is ready!';
}, 10, 2 );
FAQ
The plugin activated but the Certificates menu is missing.
Ensure your WordPress user has the manage_options capability (Administrator role). The menu is only shown to administrators.
PDF generation fails or produces a blank file.
Increase PHP memory_limit to at least 128M and max_execution_time to 60 in your php.ini or via your host's control panel.
QR codes are not appearing on certificates.
The server needs outbound HTTP access to api.qrserver.com. Some hosting providers block outbound requests — check with your host or disable QR generation in settings.
Can I translate the plugin?
Yes. All strings use the text domain smart-certificate-generator-pro. Place your .po/.mo files in wp-content/languages/plugins/.