Contact Form Extensions
Version 5.1.0
October 13, 2026
Added
- Spam status on Submission elements with CP filtering (
enableSaveSpamsetting) - Flat CSV exporter for submissions
- Tools CP page to clear submissions by form
- Submission index per-page limit control
- Database indexes on
form,dateCreated,fromEmail, andisSpam - Custom permissions for viewing and deleting submissions
- Native reCAPTCHA v2 implementation (no third-party Laravel package)
Security
- Submissions index requires
contact-form-extensions:view-submissions(also enforced on element queries/exports) - Hashed message overrides are ignored when HMAC validation fails
- Twig
settings()returns public fields only (no reCAPTCHA secret)
Changed
- Plugin is actively maintained again for Craft CMS 5 (no longer deprecated)
- Element sources use a DISTINCT query instead of loading every submission (fixes CP OOM)
- Contact Form mailer listeners register after other plugins so spam plugins can mark submissions first
- Confirmation emails honor the Craft mailer component
fromaddress - Template overrides use forward-slash paths and
App::parseEnv() - Submission detail template uses
|capitalizeinstead of deprecated|ucfirst - Unified element editor for submission detail screens
- Composer package hygiene: PHP 8.2 platform, no committed lock file, Craft ECS/PHPStan configs
Fixed
- reCAPTCHA v2 broken on Craft 5 due to undeclared
albertcht/invisible-recaptchadependency and polyfill.io CDN - Missing subject / message edge cases on the submission detail screen
Version 5.0.0
July 25, 2024
Craft CMS 5 🎉
Version 4.2.2
November 14, 2022
Fixed an issue where the settings tabs were not showing #164
Version 4.2.1
November 2, 2022
Fixed an issue where you couldn't update the Recaptcha settings in the Dashboard. #162
Version 4.2.0
September 12, 2022
Release beta label. Thank you all for helping us test this out so thoroughly! You all rock \m/!
Version 4.0.0-beta.3
May 16, 2022
There were many updates made for this plugin and cleaned up and adjusted many things. The 4 changes below will need to be updated in the templates in order for everything to work.
message['template'] -> message['confirmationTemplate']
message['subject'] -> message['confirmationSubject']
message['recaptchaTemplateOverride'] -> message['disableRecaptcha']
message['saveSubmissionOverride'] -> message['disableSaveSubmission']
Version 1.3.0
April 14, 2022
- Adding ability to override recaptcha on a per form basis. #108
- Override for saving to db on a per form basis
- Add ability to disable the email confirmation should be sent on a specific form.
Version 1.2.8
October 19, 2021
- Fixed Second form on page does not send #78 - Added unique id's to the functions and id tags to make the recaptcha separate for each form.
- Can the recaptcha script be defer / async? #100 - Added a callback function off the async script loading that keeps everything loading together correctly.
- Use of recaptcha.net instead of google.com #113 - Added settings and ability to override the API URL and Verification API URL.
Version 1.2.7
October 13, 2021
- Update readme for additional clarity on reCaptcha placement. Cheers to @jamiematrix for the assist!
Version 1.2.6
September 27, 2021
- Add overwrite field for the notification template. Thanks go to @mathiashelin for the PR!
Version 1.2.5
June 27, 2021
- Fixed a bug that would cause the Google ReCaptcha to time out after two minutes. HUGE shout out to @danielratzinger for the PR!
- For more information on this update, take a look at the pull request #101
Version 1.2.4
October 23, 2020
- Fixed a bug that was causing
lightSwitchfields to be out of sync #87
Version 1.2.3
October 23, 2020
- Added
Subjectto Submissions Detail page.
Version 1.2.2
August 28, 2020
- Added
fromNamefor confirmation email - Thank you @skoften and @jesuismaxime - Update: Set template mode to CP only if a CP request - A big thank you to @bencroker for the PR!
Version 1.2.1
May 14, 2020
- Began migrating plugin to Hybrid Interactive
Version 1.2.0
September 6, 2019
- Ability to override the confirmation subject per form
Version 1.1.7
August 9, 2019
- Added Dutch translations
- Fixed a bug causing the Confirmation message sending to fail when using environment variables
Version 1.1.6
May 8, 2019
Fixed
- Fixed array key check
- Added Norwegian translations
Version 1.1.5
April 15, 2019
Fixed
- Finally fix the element index UTF8 issue.
Version 1.1.4
April 1, 2019
Fixed
- Fix utf8 issue
Version 1.1.3
April 1, 2019
Fixed
- Fix overriding
toEmail
Version 1.1.2
April 1, 2019
Added
- Ability to override
toEmailinside your form - Ability to override
templateinside your form (thanks @helderdb) - Ability to hide the badge when using ReCaptcha V3
Fixed
- Fixed an issue with email being sent from the wrong address (thanks @helderdb)
Version 1.1.1
February 5, 2019
Added
- Added support for ReCaptcha V3
Version 1.1.0
February 5, 2019
Added
- Added support for Craft 3.1 env vars (thanks @benface)
Version 1.0.13
January 18, 2019
Fixed
- Fixed an issue with project config in 3.1
Version 1.0.12
December 3, 2018
Fixed
- Contact Form Extensions now checks if the submission was marked as spam before handling anything itself. This might solve issues with other plugins that mark it first.
Added
- Added a
craft.contactForms.submissionsvariable to display submissions in your templates (thanks @Floriswijgergangs)
Version 1.0.11
September 26, 2018
Fixed
- Confirmation email sender shoul be the system admin, thanks @Pinchcliffe
Version 1.0.10
August 21, 2018
Fixed
- Fixed encoding errors when saving checkboxes
- Fixed issue with customizing table attributes
- Fixed display of messages with new lines
- Fixed display of badge position setting
Version 1.0.9
August 3, 2018
Fixed
- Fixed a bug with encoding caused by the previous update
Version 1.0.8
July 31, 2018
Fixed
- UTF8 encoding issues should now be fixed for new submissions
- The columns added by the "Upvote" plugin won't show anymore
Version 1.0.7
July 13, 2018
Fixed
- "All submissions" can now be translated
Version 1.0.6
June 7, 2018
Fixed
- The badge position setting now saves the correct values
- Added a note when hiding the badge you should inform users in a different way
- Fix saving checkbox and radio inputs
Version 1.0.5
June 1, 2018
Added
- You can now add an invisible reCAPTCHA to your forms.
Version 1.0.4
May 22, 2018
Added
- You can now change the form name by passing a
message[formName]field in your form. This way the entries will be grouped by each form. Thanks @curtishenson
Version 1.0.3
May 14, 2018
Fixed
- Fixed a bug where the confirmation email was not sent to the person filling out the form.
Version 1.0.2
May 10, 2018
Fixed
- Don't show the nav item when database submissions are disabled
Version 1.0.1
May 8, 2018
Fixed
- Fixed a bug where the submission was being passed JSON encoded to Twig
Version 1.0.0
May 6, 2018
Added
- Initial release