2e0a829e06cad89ccdb7c79e997f5c7924ccf9a7
The regex '/([a-z0-9])([A-Z])/' does not split on underscores, so
Interface_Spam_Source, Settings_Page, Dashboard_Widget stayed as
'interface_spam_source', 'settings_page', 'dashboard_widget' after
strtolower — no file matched. Added str_replace('_', '-', ...).
Then Interface_Spam_Source's slug became 'interface-spam-source',
and the candidate 'includes/sources/interface-' . \$slug doubled
the prefix into 'interface-interface-spam-source.php'. Replaced
that candidate family with a slug-as-filename fallback that maps
interface-* slugs directly to their files.
Sanity check on plugin bootstrap: 17/17 classes/interfaces resolve.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
=== CF7 Spam → Telegram === Contributors: vbryzgalov Tags: contact-form-7, telegram, spam, flamingo Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.0.0 License: GPLv2 or later Пересылает в Telegram-группу submissions CF7, помеченные как спам, с эвристической оценкой «похоже клиент / неясно / похоже спам». == Description == Решает узкую задачу: среди отсечённого Akismet/Honeypot спама иногда встречаются реальные заявки клиентов. Плагин пересылает всё содержимое таких submissions в общую TG-группу с пометкой классификации (🟢/🟡/🔴), причиной попадания в спам, IP/UA, UTM. Требует установленных плагинов Contact Form 7 и Flamingo. == Installation == 1. Загрузите папку `cf7-spam-to-telegram` в `/wp-content/plugins/`. 2. Активируйте плагин в меню «Плагины». 3. Откройте «Настройки → CF7 Spam → TG», укажите Bot Token и Chat ID группы, сохраните. 4. Нажмите «Отправить тестовое сообщение», чтобы проверить. == Changelog == = 1.0.0 = * Первый релиз.
Description
WordPress plugin: forwards CF7 spam submissions to Telegram with heuristic classification