A spam protector and form field using the Google's reCAPTCHA 3 and supports multiple forms on a single page.

Installs: 1 975

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0


1.0.5 2020-05-05 23:55 UTC

This package is auto-updated.

Last update: 2024-01-29 03:08:36 UTC


A spam protector and form field using the Google's reCAPTCHA 3 that supports multiple forms

Based on https://github.com/UndefinedOffset/silverstripe-nocaptcha - The main changes are the way it injects CustomJs, most of it has been moved to the JS file.



composer require swordfox/silverstripe-recaptchamultiple

After installing the module via composer or manual install you must set the spam protector to RecaptchaMultipleProtector, this needs to be set a config file e.g. mysite/_config/recaptchamultiple.yml.

  default_spam_protector: Swordfox\RecaptchaMultiple\Forms\RecaptchaMultipleProtector

Add the "spam protection" field to your form fields.

	->setTitle("Spam protection")
	->setDescription("Please tick the box to prove you're a human and help us stop spam.");

Set a callback for each field, handy for ajax forms



There are multiple configuration options for the field, you must set the site_key and the secret_key which you can get from the reCAPTCHA page. These configuration options must be added to a config filee.g. mysite/_config/recaptchamultiple.yml.

    site_key: "YOUR_SITE_KEY" #Your site key (required)
    secret_key: "YOUR_SECRET_KEY" #Your secret key (required)
    verify_ssl: true #Allows you to disable php-curl's SSL peer verification by setting this to false (optional, defaults to true)
    default_theme: "light" #Default theme color (optional, light or dark, defaults to light)
    default_type: "image" #Default captcha type (optional, image or audio, defaults to image)
    default_size: "normal" #Default size (optional, normal, compact or invisible, defaults to normal)
    default_badge: "bottomright" #Default badge position (bottomright, bottomleft or inline, defaults to bottomright)
    proxy_server: "" #Your proxy server address (optional)
    proxy_auth: "" #Your proxy server authentication information (optional)