Merges informatiq-wp-secure + informatiq-utils + HoneypotFields into a single unified plugin with the following improvements: - Fixed deactivation bug: all protection methods now guard themselves with their own option check so toggling off via AJAX takes effect immediately without any hook re-registration. - Added rate-limiting for good/legitimate bots (Googlebot, Bingbot, DuckDuckBot, Yandex, etc.) via transient sliding-window counters; configurable per-bot limits in goodbots.conf (BotName|req/min); returns HTTP 429 with Retry-After: 60 when over limit. - Unified MySQL-backed logging (itk_bot_log + itk_honeypot_log tables) replaces the old wp_options-based 100-entry cap. - New Dashboard tab with terminal-style bot activity monitor: total blocked, today's count, rate-limited hits, top threat sources (bar chart), top IPs, top honeypot form types, active-module status panel. - All optimizations from utils.php merged into Optimization tab as toggleable settings (was always-on before). - Single admin page (Settings → InformatiQ Toolkit) with 8 tabs: Dashboard | Bot Blocker | Protection | Optimization | Honeypot | Bot Logs | Honeypot Logs | Config Files. - Config file editor for badbots.conf, goodbots.conf, referrers.conf, networks.conf, allowed-ips.conf with AJAX save and transient flush. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 lines
590 B
PHP
21 lines
590 B
PHP
<?php
|
|
if (!defined('WP_UNINSTALL_PLUGIN')) exit;
|
|
|
|
// Remove all plugin options
|
|
delete_option('itk_security');
|
|
delete_option('itk_optimization');
|
|
delete_option('itk_honeypot');
|
|
delete_option('itk_hp_secret');
|
|
delete_option('itk_db_version');
|
|
|
|
// Remove transients
|
|
delete_transient('itk_bots_list');
|
|
delete_transient('itk_referrers_list');
|
|
delete_transient('itk_networks_list');
|
|
delete_transient('itk_goodbots_list');
|
|
|
|
// Drop database tables
|
|
global $wpdb;
|
|
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}itk_bot_log");
|
|
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}itk_honeypot_log");
|