Installation
Attestra installs like any other WordPress plugin. You'll need WordPress 6.4 or newer and PHP 7.4+.
- Download the zip from your order confirmation email, or from the link on the checkout confirmation page.
- In your admin, go to Plugins → Add New → Upload Plugin and choose the zip.
- Click Install Now, then Activate.
- Open Attestra → Licence, paste your key and click Activate this site.
That's it. Attestra adds a single top-level menu item and creates its own database tables. It does not modify your theme, your posts, or any existing content.
Trial keys work the same way. A key from the trial page unlocks every feature on one domain for seven days. When it lapses, your records stay in the database untouched.
Credential categories
A category is the shape of a credential — a diploma, a safety ticket, an audit certificate. Everything else hangs off it, so this is the first thing to set up.
Go to Attestra → Categories → Add new and set:
- Name and slug. The slug appears in public URLs, so keep it short and readable.
- Fields. Which pieces of data this credential carries. See custom fields below.
- Template. Portrait or landscape, plus the seal, border and signature block.
- Default validity. Leave blank for credentials that never expire, or set a period like 36 months.
- Visibility. Whether expired records stay publicly listed as history or drop out of search.
Most organisations need two or three categories. Resist the urge to make one per cohort — use tags for that instead.
Custom fields
Fields are defined per category and reused across every record in it. Nine types are available:
| Type | Use it for |
|---|---|
text | Names, awarding body, programme titles |
textarea | Citations, notes shown on the certificate |
number | Scores, credit hours, cohort numbers |
date | Assessment dates, board approval dates |
select | Grades, licence classes, pass levels |
email | Holder contact, used for expiry reminders |
url | Links to a syllabus or an evidence portfolio |
image | Holder photo, secondary seals |
hidden | Internal references never shown publicly |
Each field has a public toggle. Turn it off and the value is stored and searchable in admin but never appears on the verification page — useful for internal student numbers.
Issuing records
One at a time
Attestra → Records → Add new. Pick a category, fill the fields, and publish. The credential ID, QR code, public page and PDF are all generated on publish.
In bulk, from CSV
Attestra → Import. Upload a CSV whose first row is a header, map each column onto a field, and preview before committing.
full_name,award,grade,issued_on,expires_on
Sarah Mitchell,Advanced Data Analytics,Distinction,2026-03-12,2029-03-12
James Okonkwo,Advanced Data Analytics,Merit,2026-03-12,2029-03-12
- Dates should be
YYYY-MM-DD. Other common formats are detected, but this one never surprises you. - Save your column mapping as a profile and the next import is one click.
- Rows that fail validation are reported and skipped — the rest still import.
- Duplicate credential IDs are detected before anything is written.
The verification portal
Create a page — most people call it Verify — and drop in the shortcode:
[attestra_verify]
That renders the lookup field, handles the query, and shows the verdict. Optional attributes:
| Attribute | Default | What it does |
|---|---|---|
category | all | Restrict lookups to one category slug |
require_name | false | Ask for surname as well as ID |
show_qr | true | Show the QR code on the result |
theme | inherit | inherit, light or bare |
Other shortcodes:
[attestra_record id="ATT-2026-4417"]— embed one credential anywhere.[attestra_list category="diplomas" limit="20"]— a public register.[attestra_count category="diplomas"]— a live issued count.
Whitelabel and branding
Under Attestra → Settings → Branding you can replace every visible trace of the plugin:
- Rename the admin menu item to anything you like.
- Swap the admin logo for your own.
- Set the primary colour used across the interface.
- Remove developer credits from the footer of public pages.
- Hide the plugin entirely from administrators other than yourself.
Handing a site to a client? The Agency licence includes handover licences so the client can keep receiving updates under their own key.
Troubleshooting
The licence won't activate
Check the domain matches exactly — yoursite.com and www.yoursite.com count as the same site, but yoursite.co.uk does not. If your host blocks outbound connections, allow attestrasolutions.online.
PDFs look wrong or clip
PDFs render in the browser. If a signature block clips, raise the safety margin under Settings → PDF. On phones that can't render locally, Attestra falls back to a server-generated file automatically.
Verification returns nothing
Confirm the record is published rather than draft, and that the category allows public lookup. If you restricted the shortcode with category=, an ID from a different category won't resolve.
Expiry dates seem a day out
Set your timezone properly under Settings → General in WordPress. Attestra follows the site timezone, not the server's.
Still stuck? Contact support with your credential ID and we'll take a look.