Skip to main content

πŸ†•FCOM Certificates - Automatic PDF Certificates for FluentCommunity Courses

Update - 04/06 ! 🚩
Two trigger modes
Two certificate types : Course completion + Quiz validation
LinkedIn: one-click "Add to profile"

Hi everyone,

I'd like to share a plugin I built for FluentCommunity:Β FCOM CertificatesΒ automatically generates professional PDF certificates when a student completes a course. No manual work required.


How it works

When a learner finishes a course (or passes a quiz with a minimum score), the plugin instantly generates a personalized A4 landscape PDF certificate, saves it, and emails it to the student with a download link. That's it -- fully automatic.


πŸ‘‰ Two trigger modes

  • Course completionΒ -- certificate issued when all lessons are marked complete
  • Quiz validationΒ (FluentCommunity Pro) -- certificate issued only if the quiz score meets a configurable threshold (e.g., 92%)

Each course can override the global trigger mode, so you can mix both approaches on the same site.


πŸ‘‰ Two certificate types

The plugin generates different certificates depending on the trigger:

  • Course completionΒ -- "Certificate of Completion": certifies the student completed the training. Customizable title and phrase (e.g., "has successfully completed the course").
  • Quiz certificationΒ -- "Skills Certificate": certifies a validated knowledge level. Displays the quiz score prominently. Customizable title and phrase (e.g., "has demonstrated their skills in").

All four texts (title + phrase for each type) are configurable globally and per course.


πŸ‘‰ Smart quiz filtering

Not every quiz should trigger a certificate. Configure a keyword (default: "Certification") -- only quizzes whose title contains that keyword generate a certificate. Training quizzes are ignored. Configurable globally and per course. Leave empty to accept all quizzes.


πŸ‘‰ What's on the certificate

  • Your logo and brand colors (Optional)
  • Optional background image (A4 landscape, up to 5 MB)
  • Student name (pulled from FluentCommunity profile)
  • Course title
  • Completion date
  • Quiz score (if applicable)
  • Unique verifiable certificate number with customizable prefix (e.g., CAIA-202604-X48DR)
  • QR code for instant verification (in addition to the text URL)
  • Verification URL
  • Instructor name (Optional)
  • Company details (address, phone, registration number)
  • Optional watermark (image or text)
  • Configurable validity period with expiration date

Two built-in templates:Β ClassicΒ (centered, decorative borders) andΒ ModernΒ (colored sidebar layout). Both print-ready with proper white margins. PDF metadata included (title, author, subject visible in document properties).


πŸ‘‰ For the student

  • Receives the certificate by email (with PDF attached) immediately after completion
  • Can download it anytime from a "My Certificates" page
  • Can verify it publicly via a verification page (auto-created by the plugin)
  • Can add it to their LinkedIn profile with one click (pre-filled form)
  • Receives a reminder email before expiration with a direct link to renew

πŸ‘‰ For the admin

  • Full settings page: logo, background image, colors, templates, email templates, validity period, reminder delays -- everything is configurable
  • Dashboard: overview with stats cards (total/active/expired/revoked), monthly generation chart, top certified courses, activity log
  • Certificate registry: paginated list of all certificates with search, filters (status, mode), and sortable columns
  • Manual generation: generate a certificate for any student + course from the admin, with choice of certificate type (completion or quiz) and optional score
  • CSV export: download the full registry for reporting
  • Revocation: revoke any certificate with a reason -- revoked certificates can no longer be downloaded or verified
  • Preview & test: preview the PDF with sample data, or generate a real test certificate to verify the full chain (PDF + email sent immediately)
  • Per-course settings: override template, trigger mode, certificate titles & phrases, background image, instructor, minimum score, validity, quiz keyword, and email template per course (via FluentCommunity's Meta Settings API)
  • Admin notifications: optional email alert each time a certificate is generated
  • Activity log: tracks certificate generation, revocation, expiration, and manual generation with timestamps and user info
  • Export/Import: export all settings to JSON, import on another site

πŸ‘‰ Expiration & reminders

Certificates can have a configurable validity (e.g., 12 months). The plugin automatically:

  • Marks expired certificates
  • Sends a reminder email X days before expiration (configurable), with a direct link to retake the course
  • The verification page shows "Expired" for expired certificates

πŸ‘‰ FluentCRM integration

  • Automation trigger: "Student Gets Certificate"Β -- create funnels that fire when a student earns a certificate. Appears in the FluentCRM automation builder under "Course Certificates". Options to run once or for every certificate, and to control re-entry behavior.
  • Automatic tagging: apply a FluentCRM tag when a certificate is generated
  • SmartCodesΒ for email automations:Β {{fcom.download_url}},Β {{fcom.certificate_id}},Β {{fcom.course_title}},Β {{fcom.student_name}},Β {{fcom.issued_at}},Β {{fcom.verification_url}},Β {{fcom.linkedin_url}}

πŸ‘‰ Other integrations

  • LinkedIn: one-click "Add to profile" button in the email and on the certificates page, with your Organization ID for automatic company linking
  • FluentCommunity portal: optional "My Certificates" link in the portal menu
  • Webhooks: configure a URL to receive POST JSON notifications on every generation, revocation, or expiration. Compatible with Zapier, Make, n8n.

πŸ‘‰ Shortcodes

  • [fcom_certificate_verify]Β -- public verification form
  • [fcom_my_certificates]Β -- student's certificate list with download + LinkedIn buttons
  • [fcom_certificate_completions]Β -- recent completions feed (configurable limit and animation)

πŸ‘‰ GDPR ready

Optional GDPR compliance (toggle on/off in settings). When enabled, integrates with WordPress personal data tools:

  • Export: students can request their certificate data
  • Erasure: anonymizes records, deletes PDF files, keeps anonymized traces for legal compliance

πŸ‘‰ Security & quality

  • Every line of code has been audited for SQL injection, XSS, CSRF, path traversal, and authorization
  • Rate limiting on public verification endpoint
  • HMAC-signed download links (no login required, works from emails)
  • QR code verification on every certificate
  • File integrity checking
  • 3-layer license protection system
  • Proper uninstall with confirmation dialog listing all data that will be deleted

Other details

  • Fully translatable (326 strings, .pot file included, English translation built-in)
  • Self-hosted update system
  • Works with WordPress 6.0+ and PHP 8.0+
  • Requires FluentCommunity with the Course module enabled

The plugin will be offered at a price ofΒ 49 EUR, with aΒ lifetime licenseΒ (nothing to pay each year, because your business should not depend on a third party).

Built specifically for FluentCommunity. Happy to answer any questions or hear feedback.

πŸ†•FCOM Certificates - Automatic PDF Certificates for FluentCommunity Courses πŸ†•FCOM Certificates - Automatic PDF Certificates for FluentCommunity Courses πŸ†•FCOM Certificates - Automatic PDF Certificates for FluentCommunity Courses πŸ†•FCOM Certificates - Automatic PDF Certificates for FluentCommunity Courses

D@vid

Shani Cipro

Incredible work! Would it be possible to set backgrounds? Also, could we make it so that they get a certificate after a series of courses (e.g. all the courses in one space)?

D@vid

Shani CiproΒ Thx !

It is possible to choose:

  • a solid background color
  • two background colors for a gradient
  • the title color
  • the text color
  • the border color

I had initially included the option to choose a background image, but I removed it because I thought users might struggle to select an image suitable for this type of use (especially considering printing and margins).

However, if there is demand, I can reintroduce the background image option (not recommended).

In the example I published, the watermark is text, but it can also be an image.

At the moment, there are two certificate templates:

  • Classic with a border
  • Modern, with a left-hand column

--

The certificate is generated:

  • when the learner has completed all the lessons in a course and clicks on "course completed"
    or
  • when the title of a quiz contains the word "certification" (this makes it possible to create quizzes specifically for certifications)

Both options can work at the same time.

D@vid

Shani CiproΒ Update πŸ˜‰

D@vid

Ross FCAΒ I don’t engage in that kind of pointless debate. Everyone is free to compare and choose whichever tool they want. πŸ˜‰

Ross FCA

D@vidΒ Interesting you saw that question as debate. You're selling a feature that's already for sale so I was simply curious as to what differentiates it. Why one would choose this over the other. I'd see that as promotion and marketing not pointless debate, but each to their own.

D@vid

Ross FCAΒ Thank you for the clarification. If I refuse to engage in that kind of debate, it’s because I respect everyone’s work and direction. If several products exist, everyone should be able to choose one or more depending on what is offered. πŸ˜‰

Jeff Mapes

Ross FCAΒ As a Fluent ecosystem add-on dev, I'm not a fan of copycats. I appreciate your question / comment.

D@vid

Jeff MapesΒ I’m not sure I fully understand your comment and the reference to imitation. πŸ€”

Ross FCA

D@vidΒ if I may, without debate, or hostility, or any ill feeling whatsoever (it's so hard to get tone across via text, never mind bringing multiple languages into it), try to explain Jeff's comment.

Course certificates is a clear gap in the FluentCommunity Courses module. 6+ months ago Wilson started working on filling that gap, and has since then been actively working on it iteratively within this community, taking on feedback and adding features. Recently releasing his v5 alpha just 4 days ago. I'm sure you noticed this so I'm not telling you anything new. Zero accusations on stealing by the way, I'm not suggesting that at all. Wilson's product might not have been a good fit for you and you then produced something different, which is why I asked how it's different.

FluentCommunity is still new, fresh, and growing. Third party development will only grow with it, and of course there is going to be overlap/competition among particular features. I guess my view is that because it's so new, and there's so much potential, that there are many gaps to be filled without stepping on anyone's toes.

Again, no hostility, no accusations, just an explanation. I like analogies, so for me it's like getting on a bus and there's only one other passenger, and then choosing to sit next to them.

Jeff Mapes

Ross FCAΒ perfect analogy!

D@vid

Ross FCAΒ I haven’t paid any particular attention to Wilson’s work, just like I don’t track every FluentCommunity user. I come here when I have something to ask or share, or when the team makes an announcement. So no, I haven’t followed his projects or updates.

If he’s building something, that’s great for him. But it concerns him, not the entire WordPress community, which is, by nature, constantly creating. That’s actually why FluentCommunity opened its code. And even if I had known, it wouldn’t have changed anything in my own search for a solution.

As you said, certificate generation is a known gap. It’s unrealistic to assume only one person started working on it. I’m currently at version 4.1 of my own solution, and it’s continuously evolving. Calling something a β€œcopy”, especially in the WordPress ecosystem, is just a matter of personal opinion.

For context, I’ve also built a plugin connecting ChatGPT, Claude, and Gemini to FluentCommunity, with advanced course, lesson, and quiz management features. That’s actually what led me to share my certification-related solution.

  • Creating a course (draft)

  • Editing title, description, privacy, settings, cover

  • Duplicating a full course

  • Adding a chapter

  • Editing a chapter

  • Reordering chapters

  • Adding a lesson

  • Editing lesson HTML content

  • Moving a lesson to another section

  • Reordering lessons

  • Creating a quiz with questions (2-step process)

  • Editing minimum score, restrictions, visibility

  • Replacing quiz questions

  • Manually grading a result

  • Enrolling a user in a course

  • Retrieving results for a specific quiz

  • Retrieving quiz results for a course

  • Listing enrolled students and their progress

  • Accessing full lesson content

  • Listing lessons in a course

  • Accessing section details

  • Listing course sections

  • Retrieving a course by URL slug

  • Getting course details by ID

  • Listing courses (with optional search)

    Certificates and AI are topics I’ve been working on for a while. Anyone is free to build, improve, and contribute their own solutions to the community. πŸ˜‰

End of the discussion for me.

Great work! When and how can we purchase it?

D@vid

Screenplay Unlimited
Hi !
The tools are ready, but I’m fine-tuning the AI connector.
I’ll offer each one separately, as well as a bundle with both.
A lifetime license, at a fair price. By Friday this week at the latest.
Thank you.

D@vidΒ Hi David, any updates on this?

D@vid

Screenplay UnlimitedΒ hi,

If you are referring to the AI ​​connector, Claude is already available.

https://community.wpmanageninja.com/portal/space/community-meta/post/fcom-ai-connect-pilot-fluentcommunity-w

D@vidΒ Thanks but no, I'm referring to the certificates builder.

DAVID MOUSSEBOIS

Salut David, David ici aussi. Du coup je t'Γ©cris en francais car je suis intΓ©ressΓ© par tes outils fluentcommunity. Mais ou sont les liens stp. Merci pour ce travail.

D@vid

DAVID MOUSSEBOISΒ Bonjour David,
Les outils sont prΓͺts mais je peaufine le connecteur IA.
Je vais proposer chacun et un bundle avec les deux.
Une licence, Γ  vie, Γ  bon prix. Vendredi de cette semaine, au plus tard.
Merci

Colin Sobey

We purchased this, but unfortunately the link provided didn't work. We tried contacting them several times by email but received no response, so in the end we had to lodge a dispute with our bank to get our money back.