Integrate Friendly Captcha to fight spam in your Craft CMS forms
This plugin requires Craft CMS 3, 4 or 5
To install the plugin, follow these instructions.
-
Open your terminal and go to your Craft project:
cd /path/to/project
-
Then tell Composer to load the plugin:
composer require digitalpulsebe/craft-friendly-captcha
when using Craft 3.x use plugin version 1:
composer require digitalpulsebe/craft-friendly-captcha:^1.0.0
-
In the Control Panel, go to Settings → Plugins and click the “Install” button for Friendly Captcha. Or run:
php craft plugin/install friendly-captcha
Create an account for Friendly Captcha https://friendlycaptcha.com/
Generate a sitekey and an API key and put them in the plugin settings or .env-file
On every form you want to use, you need to render the widget inside the form.
In you template, put this inside the <form>
-tag
{{ craft.friendlyCaptcha.renderWidget() }}
You have to enable the forms you want to validate in the settings:
- Contact Forms plugin (Submission::EVENT_BEFORE_VALIDATE)
- User registration form (User::EVENT_BEFORE_VALIDATE)
When you want to validate the request in your custom controller run this:
use digitalpulsebe\friendlycaptcha\FriendlyCaptcha;
// ...
if (!FriendlyCaptcha::$plugin->validate->validateRequest()) {
// add error here
}
To show error messages in your form, use the submission object (check implementation of the controller you use):
{{ craft.friendlyCaptcha.renderWidget() }}
{{ submission ? _self.errorList(submission.getErrors('friendlyCaptcha')) }}
Use the digitalpulse/craft-formie-friendly-captcha plugin with Formie.
You can pass an array of attributes to the renderWidget()
-function.
Read the Attribute API HTML tags-section
in the Friendly Captcha docs.
example:
{{ craft.friendlyCaptcha.renderWidget({'data-lang': 'fr'}) }}
The Friendly Captcha widget and logo belong to Friendly Captcha