Custom certificate

Activities ::: mod_customcert
Maintained by Mark Nelson
Part of set MoodleCloud.
Enables the creation of dynamically generated certificates with complete customisation via the web browser.
Latest release:
31197 sites
11k downloads
541 fans
Current versions available: 19

This plugin allows the generation of dynamic PDF certificates with complete customisation via the web browser.

Currently supported versions: 5.0, 5.1 and 5.2

Please do not ask support questions here. For support please post on the support forums.

GDPR Compliant.

If you like this plugin feel free to donate. smile btn_donate_LG.gif

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2

Contributors

Mark Nelson (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments

Show comments
  • Przemyslaw Skorupa
    Wed, 16 July 2025, 4:40 PM
    Hello,
    I'm trying to download all issued certificates (it's 450 total), but after waiting 120 sec have an error "Request Timeout". When we had around 100 issued certificates everything was fine. Moodle version 4.5.5, Customcert version 4.4.6
    Anyone had issue like this?
  • IT INSERVER
    Mon, 4 Aug 2025, 3:29 PM
    Hi!
    Thank you for this plugin, which we've been using on our platforms for a long time. One of the latest improvements allows downloading all the certificates issued in a course in a single ZIP file, all at once. This is a feature that users have always requested.
    However, we’ve encountered two issues:
    1. The bulk download does not respect the group filter.
    2. If the course has many users and certificates, the plugin throws a 500 error.
    Is there any plan to allow filtering certificates in the bulk download, or to run the download as a background task?
    Thanks!
  • Anachala Gupta
    Thu, 7 Aug 2025, 10:42 AM
    Hello, I would like to know how I can add the 'Download All Certificates' functionality in an older version of Moodle. I'm unable to update to the latest version.
  • Suzana de Andrade Ferreira
    Thu, 16 Oct 2025, 2:42 AM
    Hi, Mark!
    I really love custom certificate! But I got a problem...

    I created a custom field in the course and am capturing the information contained in this field. The field is a text box with line breaks, and the text is a list and settings like bold and italics (the course syllabus).

    When I capture this information in the template, it displays in a straight line, without line breaks, and it also doesn't display list elements, etc.

    How can I make the content appear as it is entered on the course setting page?

    Best regards,
    Suzana
  • daniel oso
    Fri, 14 Nov 2025, 3:50 AM
    Hi! The issue is that certificate codes with dashes (e.g., `0000-0000-0000`) fail because `PARAM_ALPHANUM` removes the hyphens. Changing it to `PARAM_ALPHANUMEXT` keeps the dashes and fixes the validation problem.

    Current code: $code = optional_param('code', '', PARAM_ALPHANUM);
    Suggested code: $code = optional_param('code', '', PARAM_ALPHANUMEXT);

    Bugtracker URL: https://github.com/mdjnelson/moodle-mod_customcert/issues/727
  • Aditya Dubay
    Fri, 16 Jan 2026, 3:14 PM
    Its not supporting Hindi unicode utf 8
  • Neil Krshna
    Sun, 22 Mar 2026, 3:28 PM
    I have used this plugin successfully on my moodle site and it works as expected. Thanks!
  • Dr. Nellie Deutsch
    Fri, 24 Apr 2026, 4:30 AM
    I have been using the certificate plugin for years. Will there be an update for Moodle 5.2? Thank you.
  • genivan santos
    Wed, 27 May 2026, 12:38 AM
    Add the fields from the mod_customcert (Custom Certificate) plugin to the Report Builder.
  • Mark Nelson
    Fri, 12 June 2026, 9:18 PM
    Dr. Nellie Deutsch - Moodle 5.2 requires PHP 8.3. Your task is failing because you are running an older version of PHP.
  • Rudraksh Batra
    Wed, 24 June 2026, 11:49 AM
    Hi I m noticing one weird thing when I receive email for certificate, it contains same content twice in the email, and this is happening to few users not all, this is after latest updates on 5.2
  • Andrew Dzh
    Fri, 3 July 2026, 7:45 PM
    Hi! Can the instructor issue certificates to students in this module? If not, it would be great to add
  • VentusTechnology DepartamentoIA
    Sat, 4 July 2026, 5:14 AM
    Hello,
    I’m asking for help with the following issue: I installed this plugin (mod_customcert) a few days ago. After installing the plugin, I get an error when previewing a Custom certificate global template.
    Moodle version: Moodle 5.2.1+ Build: 20260624
    Plugin: Custom certificate activity module (mod_customcert)
    Plugin version: 5.2.2 Build: 2026042003
    Operating system: Ubuntu 0.24.04.1
    Web server: Apache/2.4.58 (Ubuntu)
    Database: mariadb (10.11.14-MariaDB-0ubuntu0.24.04.1)
    PHP version: 8.3.6
    Theme: Boost
    Installation method: Package
    The issue happens in:
    Site administration → Plugins → Activity modules → Custom certificate → Custom certificate settings → Manage templates
    I created a new global template named “default”. I can open it and edit its elements normally. The template currently includes the following elements:
    • Course name
    • Student name
    • Grade
    • Date
    When I click “Save changes”, the template appears to save correctly.
    However, when I click “Save changes and preview”, Moodle shows this exact error message:
    Can't find data record in database.
    What I did:
    1. Went to Site administration.
    2. Opened Plugins → Activity modules → Custom certificate → Custom certificate settings → Manage templates.
    3. Opened the previously created default template.
    4. Reviewed/edited the certificate elements.
    5. Clicked Save changes and preview.
    6. Moodle displayed: Can't find data record in database.
    What I expected:
    I expected Moodle to save the template and show a preview of the certificate PDF.
    What went wrong:
    The global template seems to save correctly, but the preview fails with the database record error.
    I have confirmed this error only happens when previewing the global template from the admin area. I created an activity inside a course, and associated that activity to the default certificate created above, the certificate is created as expected, but when downloaded, it is a white page.
    My questions are:
    1. When I click on “More information about this error”, it takes me to this URL: https://docs.moodle.org/502/en/error/moodle/invalidrecordunknown, where it says “This error can occur when Moodle tries to access a record in the Moodle database that does not exist.” Is there a script I need to run to update the database after installing the plugin?
    2. I installed the plugin using the Moodle web UI, should I have installed it in a different manner?

    Thank you in advance for any guidance.
  • Dave Foord
    Mon, 6 July 2026, 3:39 AM
    @Andrew - assuming that I am understanding your question correctly, you wouldn't get the instructor to issue certs directly from within this activity, but you would use another mechanism to do this - of which there are various options - here are a few:

    Use the Pulse plugin - this creates a simple mechanism where the tutor can mark which students have 'passed' you then use the activity completion of this activity as a restriction in the certificate.
    Or - use the standard assignment activity, set it so that the students don't submit, but instructor uses it to give them a grade - I would set up a scale with 2 options of 'Don't issue certificate, Issue Certificate', you then set the pass score as 2 in the assignment, and complete if student achieves the pass grade. Again, you add a restriction onto the certificate, so only released if this assignment is complete.
    Or - set up course completion to include 'Manual completion by others' and add the instructor into this, then issue cert once course is complete.

    And there are other ways to do this.
  • Dave Foord
    Mon, 6 July 2026, 3:39 AM
    @Andrew - assuming that I am understanding your question correctly, you wouldn't get the instructor to issue certs directly from within this activity, but you would use another mechanism to do this - of which there are various options - here are a few:

    Use the Pulse plugin - this creates a simple mechanism where the tutor can mark which students have 'passed' you then use the activity completion of this activity as a restriction in the certificate.
    Or - use the standard assignment activity, set it so that the students don't submit, but instructor uses it to give them a grade - I would set up a scale with 2 options of 'Don't issue certificate, Issue Certificate', you then set the pass score as 2 in the assignment, and complete if student achieves the pass grade. Again, you add a restriction onto the certificate, so only released if this assignment is complete.
    Or - set up course completion to include 'Manual completion by others' and add the instructor into this, then issue cert once course is complete.

    And there are other ways to do this.
Please login to post comments