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

  1. Download smart-certificate-generator-pro.zip from your purchase receipt.
  2. In your WordPress admin go to Plugins → Add New → Upload Plugin.
  3. Choose the ZIP file and click Install Now.
  4. Click Activate Plugin.

Option B — Manual FTP / SSH

  1. Unzip the archive.
  2. Upload the smart-certificate-generator-pro/ folder to /wp-content/plugins/.
  3. Activate from Plugins → Installed Plugins.

What Happens on Activation

When the plugin activates for the first time it:

  • Creates the wp_scg_certificates database 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_certificates table), it is automatically renamed — no data is lost.

General Settings

Go to Certificates → Settings. The settings are split into tabs.

SettingDescription
Company NamePrinted on every certificate. Leave blank to use your site name.
Certificate Code PrefixUppercase letters only. Codes will look like CERT-A1B2C3D4. Default: CERT.
Verification PageThe WordPress page where [scg_verify_certificate] is placed. Auto-set on activation.
QR Generator Modeexternal_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:

PlaceholderReplaced 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

  1. Go to Certificates → Generate.
  2. Select Manual Entry.
  3. Fill in participant name, email, course name, and date. Add more rows with + Add Participant.
  4. Choose whether to send emails immediately.
  5. Click Generate Certificates.

Bulk via CSV / Excel

  1. Go to Certificates → Generate → Bulk Upload.
  2. Upload a .csv, .xlsx, or .xls file (max 5 MB).
  3. The plugin reads the file and previews the parsed rows before generating.
  4. 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 headerRequiredFormat / notes
nameYesFull name of the participant
emailYesValid email address for delivery
course_nameYesName of the course or programme
dateYesYYYY-MM-DD format, e.g. 2026-03-15
expires_atNoYYYY-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:

HookTypeDescription
scg_certificate_email_subjectfilterModify the certificate email subject line. Receives $subject and $data array.
scg_certificate_email_messagefilterModify the email body HTML. Receives $message and $data array.
scg_certificate_email_headersfilterModify 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/.