
- MODX 3
- PHP 8.2


Сначала пройдитесь по базовому:
&preHooks есть phoneSpamBlockphonespamdetect_phone_field или с phoneFieldphonespamdetect_validate_enabled и phonespamdetect_block_invalid включеныДля FetchIt: на странице, куда уходит AJAX, FormIt должен вызываться с phoneSpamBlock.
Для SendIt: в пресете в preHooks должен быть phoneSpamBlock.
phonespamdetect_allowed_regions — лишний код или пустая строка (пустая = любая страна)RU, KZ), не телефонный код (+7)Часто дело в default_region: человек набрал 8 999 ... без +, а регион в настройках не тот. Или страны нет в allowed_regions. Иногда libphonenumber жёстче, чем кажется на глаз.
Включите phonespamdetect_log_blocked, отправьте форму ещё раз, смотрите Управление → Системный журнал — там будет поле, номер и reason.
В шаблоне должен быть [[+fi.validation_error_message]] или Fenom-аналог. Проверьте, что другой хук не затирает плейсхолдер. На AJAX — что клиент вообще показывает ошибки FormIt.
phonephonespamdetect_validate_enabledcore/components/phonespamdetect/vendor/autoload.php? При сбое сниппет не блокирует (fail-open) и пишет в логУправление → Системный журнал при включённом phonespamdetect_log_blocked: поле, нормализованный номер, причина.
Нет. Библиотека уже в пакете.
Нет, всё на сервере через giggsey/libphonenumber-for-php.
Да: RU,KZ,BY и т.д.
Любой валидный номер. По стране не режем, по формату — да.
Нет. В настройках пишите ISO: RU, KZ, BY. +7 — это код линии, не настройка дополнения.
Добавьте в preHooks рядом с phoneSpamBlock. С CrawlerDetect обычно так: crawlerDetectBlock,phoneSpamBlock,recaptcha.
PhoneSpamDetect заточен под FormIt. Если AjaxForm на бэкенде всё равно зовёт FormIt — добавьте phoneSpamBlock туда.
Да. В пресете 'preHooks' => 'phoneSpamBlock'. Подробнее в разделе про SendIt.
Нет, только 3.x.
В этой версии нет. Только libphonenumber: формат, страна, E.164.