hryvinskyi / magento2-invisible-captcha
hryvinskyi/magento2-invisible-captcha
Magento 2 Google Invisible Captcha (Recaptcha) module
Google Invisible Captcha v3 for magento 2
Module version 2.0.*||2.1.*||2.2.* support Magento 2.3.*
Module version 1.0.* support Magento 2.1.*||2.2.*
Features
- Lazy Load, google page speed improvements
- Easy to add captcha to your custom form
- AJAX forms supported
- Knockout forms supported
- Refreshing invalid token after a long period of inactivity on the site and after ajax form submitted
Frontend Forms
- Login
- Register
- Forgot password
- Contact
- Newsletter
- Send to Friend
Backend Forms
- Login
- Forgot password
Installation Guide
Install by composer
composer require hryvinskyi/magento2-invisible-captcha
bin/magento module:enable Hryvinskyi_Base
bin/magento module:enable Hryvinskyi_InvisibleCaptcha
bin/magento setup:upgrade
Install download package
-
Download module https://github.com/hryvinskyi/magento2-base Link
-
Download this module Link
-
Unzip two modules in the folder app\code\Hryvinskyi\Base and app\code\Hryvinskyi\InvisibleCaptcha
-
Run commands:
bin/magento module:enable Hryvinskyi_Base bin/magento module:enable Hryvinskyi_InvisibleCaptcha bin/magento setup:upgrade -
Configure module in admin panel
Command-line:
php bin/magento hryvinskyi:invisible-captcha:disable <area> --website_id=<website_id>
This command will disable invisible captcha for the area and/or website_id.
- area = [global, frontend, adminhtml]
- website_id = ID Website
General Settings
LazyLoad Speed Test
License
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[2.5.5] - 2026-06-01
Fixed
- PHP 8.5: added the
: intreturn type and an explicitreturn Command::SUCCESS;
toCommand\Captcha::execute(), matching Symfony ConsoleCommand::execute(): int
(fixes the "must be compatible" fatal error). - Monolog 3:
Model\Debug::write()now acceptsMonolog\LogRecordinstead ofarray
to matchMagento\Framework\Logger\Handler\Base::write().
2.5.4 - 2026-06-01
Added
- PHP 8.5 support (
~8.5added to thephprequirement).
Fixed
- PHP 8.4/8.5 compatibility: replaced implicit-nullable parameter declarations
(Type $param = null) with explicit nullable types (?Type $param = null)
across the failure providers, area config, and abstract config classes, removing
the "Implicitly marking parameter as nullable is deprecated" notices.
Security
- Widened the
symfony/dom-crawlerrequirement from>=2.7 <5.0to
^5.4.52 || ^6.4.40 || ^7.4.12 || ^8.0.12. The previous constraint could only
resolve to versions affected by CVE-2026-45071 (XXE / local file disclosure
inDomCrawler::addXmlContent()viavalidateOnParse = true), because no fix
exists for the 2.x–4.x branches. The new constraint pins to the patched releases
and aligns with the Symfony components shipped by Magento 2.4.x.
2.5.3 - 2025-10-06
Changed
- Updated dependencies and removed leftover
console.logdebug output.
2.5.2 - 2025-08-12
Changed
composer.jsonmaintenance.
2.5.1 - 2025-06-24
Changed
composer.jsonmaintenance.
2.5.0 - 2025-06-17
Changed
composer.jsonmaintenance.
| Version | Stability | QA Status | Compatibility | Released |
|---|---|---|---|---|
| 2.5.5 | stable | Fail | Magento 2.4.8 Details | 2026-06-01 19:51:18 |
| 2.5.4 | stable | Not tested | Not yet tested Details | 2026-06-01 12:25:56 |
| 2.5.3 | stable | Not tested | Not yet tested Details | 2025-11-05 18:06:24 |
| 2.5.2 | stable | Not tested | Not yet tested Details | 2025-08-12 09:01:06 |
| 2.5.1 | stable | Not tested | Not yet tested Details | 2025-06-24 09:54:36 |
| 2.5.0 | stable | Not tested | Not yet tested Details | 2025-06-16 22:29:28 |
| 2.4.10 | stable | Not tested | Not yet tested Details | 2025-06-16 22:27:23 |
| 2.4.9 | stable | Not tested | Not yet tested Details | 2025-05-05 18:55:28 |
| 2.4.8.1 | stable | Not tested | Not yet tested Details | 2025-05-05 13:18:08 |
| 2.4.8 | stable | Not tested | Not yet tested Details | 2024-03-28 20:23:25 |
| 2.4.7 | stable | Not tested | Not yet tested Details | 2024-01-18 12:29:05 |
| 2.4.6 | stable | Not tested | Not yet tested Details | 2024-01-18 11:31:05 |
| 2.4.5 | stable | Not tested | Not yet tested Details | 2023-12-13 10:56:58 |
| 2.4.5-dev | dev | Not tested | Not yet tested Details | 2022-09-01 07:46:00 |
| 2.4.4 | stable | Not tested | Not yet tested Details | 2022-06-23 09:59:18 |
| 2.4.3 | stable | Not tested | Not yet tested Details | 2022-06-21 12:26:03 |
| 2.4.2 | stable | Not tested | Not yet tested Details | 2022-03-22 10:43:26 |
| 2.4.1 | stable | Not tested | Not yet tested Details | 2022-03-22 10:34:54 |
| 2.4 | stable | Not tested | Not yet tested Details | 2022-03-22 10:29:50 |
| 2.3.2 | stable | Not tested | Not yet tested Details | 2021-06-19 08:57:54 |
| 2.3.1 | stable | Not tested | Not yet tested Details | 2020-09-23 22:33:58 |
| 2.3.0 | stable | Not tested | Not yet tested Details | 2020-09-07 14:03:20 |
| 2.2.7 | stable | Not tested | Not yet tested Details | 2020-08-13 19:20:15 |
| 2.2.6 | stable | Not tested | Not yet tested Details | 2020-08-07 20:19:11 |
| 2.2.5 | stable | Not tested | Not yet tested Details | 2020-08-03 19:09:47 |
| 2.2.4 | stable | Not tested | Not yet tested Details | 2020-06-16 20:43:55 |
| 2.2.3 | stable | Not tested | Not yet tested Details | 2020-06-16 20:35:41 |
| 2.2.2 | stable | Not tested | Not yet tested Details | 2020-06-16 19:32:58 |
| 2.2.1 | stable | Not tested | Not yet tested Details | 2020-06-16 17:29:41 |
| 2.2.0 | stable | Not tested | Not yet tested Details | 2020-06-16 11:40:32 |
| 2.1.10.1 | stable | Not tested | Not yet tested Details | 2020-06-09 13:23:05 |
| 2.1.10 | stable | Not tested | Not yet tested Details | 2020-05-21 17:55:11 |
| 2.1.9.1 | stable | Not tested | Not yet tested Details | 2020-02-12 21:05:09 |
| 2.1.9 | stable | Not tested | Not yet tested Details | 2020-02-09 20:23:41 |
| 2.1.8 | stable | Not tested | Not yet tested Details | 2020-02-05 13:28:44 |
| 2.1.7.1 | stable | Not tested | Not yet tested Details | 2020-01-30 09:31:19 |
| 2.1.7 | stable | Not tested | Not yet tested Details | 2020-01-10 13:06:04 |
| 2.1.6 | stable | Not tested | Not yet tested Details | 2019-10-20 10:46:16 |
| 2.1.5 | stable | Not tested | Not yet tested Details | 2019-09-25 13:33:54 |
| 2.1.4 | stable | Not tested | Not yet tested Details | 2019-09-24 20:37:24 |
| 2.1.3 | stable | Not tested | Not yet tested Details | 2019-09-17 12:16:12 |
| 2.1.2 | stable | Not tested | Not yet tested Details | 2019-09-17 11:19:58 |
| 2.1.1 | stable | Not tested | Not yet tested Details | 2019-09-17 07:22:08 |
| 2.1.0.4 | stable | Not tested | Not yet tested Details | 2019-06-11 14:19:19 |
| 2.1.0.3 | stable | Not tested | Not yet tested Details | 2019-06-11 13:38:50 |
| 2.1.0.2 | stable | Not tested | Not yet tested Details | 2019-06-05 13:36:06 |
| 2.1.0.1 | stable | Not tested | Not yet tested Details | 2019-06-01 17:21:40 |
| 2.1.0 | stable | Not tested | Not yet tested Details | 2019-05-26 10:36:24 |
| 2.0.4 | stable | Not tested | Not yet tested Details | 2019-04-22 14:56:14 |
| 2.0.3 | stable | Not tested | Not yet tested Details | 2019-04-18 15:26:56 |
| 2.0.2 | stable | Not tested | Not yet tested Details | 2019-04-09 12:02:45 |
| 2.0.1 | stable | Not tested | Not yet tested Details | 2019-03-22 08:50:42 |
| 2.0.0 | stable | Not tested | Not yet tested Details | 2019-03-21 23:52:56 |
| 1.0.1 | stable | Not tested | Not yet tested Details | 2018-06-27 12:07:03 |
| 1.0.0 | stable | Not tested | Not yet tested Details | 2017-11-10 09:37:22 |
Requires 9
| Package | Constraint |
|---|---|
| ext-dom | * |
| hryvinskyi/magento2-base | ^2.1 |
| magento/framework | * |
| magento/module-checkout | * |
| magento/module-customer | * |
| magento/module-store | * |
| php | ~8.0||~8.1||~8.2||~8.3||~8.4||~8.5 |
| symfony/dom-crawler | ^5.4.52 || ^6.4.40 || ^7.4.12 || ^8.0.12 |
| voku/simple_html_dom | ^4.8 |
Requires-dev 1
| Package | Constraint |
|---|---|
| roave/security-advisories | dev-latest |
Compatibility
Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.
Code Quality
Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge — a phpcs finding can't make a module incompatible.
Static analysis
Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.
| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Fail | 123 | 7 errors, 116 warnings (ruleset: Magento2) — 61 auto-fixable with phpcbf |
| PHPMD | Warning | 3 | 3 rule violations (IfStatementAssignment:1, CyclomaticComplexity:1, UnusedFormalParameter:1) |
| Cpd | Pass | 0 | |
| Composer validate | Info | 5 | valid; 5 advisory notes (composer validate --strict) |
PHPStan
Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases. Cell → details modal.
Tests
Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.
Unit tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Integration tests
| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | ||
| 2.4.8 | N/A | N/A | ||
| 2.4.9 | N/A | N/A |
Security
Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.
More from hryvinskyi
View vendorTurn an existing module into recurring revenue.
If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.


