Moodle Plugins directory: Custom certificate | Moodle.org
Custom certificate
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.

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?
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!
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
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
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.
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.
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.