wp_webdecoy_blocked_ips
StaticStores webdecoy blocked ips data created by this plugin.
Column Definitions
| Column | Type | Nullable |
|---|---|---|
| 🔑id | BIGINT UNSIGNED | NO |
| ip_address | VARCHAR(45) | NO |
| reason | VARCHAR(255) | YES |
| blocked_at | DATETIME | NO |
| expires_at | DATETIME | YES |
| created_by | VARCHAR(100) | YES |
| remote_id | VARCHAR(36) | YES |
| ip_address | VARCHAR(45) | NO |
| user_agent | TEXT | YES |
| score | INT UNSIGNED | YES |
| threat_level | VARCHAR(20) | YES |
| source | VARCHAR(50) | YES |
| flags | TEXT | YES |
| created_at | DATETIME | NO |
| request_count | INT UNSIGNED | YES |
| window_start | DATETIME | NO |
| ip_address | VARCHAR(45) | NO |
| order_id | BIGINT UNSIGNED | YES |
| status | VARCHAR(20) | YES |
| amount | DECIMAL(10, 2) | YES |
| card_last4 | VARCHAR(4) | YES |
| created_at | DATETIME | NO |
| 🔑retried | by | NO |
| payload | LONGTEXT | NO |
| attempts | TINYINT UNSIGNED | YES |
| created_at | DATETIME | NO |
CREATE TABLE Statement
CREATE TABLE IF NOT EXISTS wp_webdecoy_blocked_ips ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, ip_address VARCHAR(45) NOT NULL, reason VARCHAR(255) DEFAULT '', blocked_at DATETIME NOT NULL, expires_at DATETIME DEFAULT NULL, created_by VARCHAR(100) DEFAULT 'system', PRIMARY KEY (id), UNIQUE KEY ip_address (ip_address), KEY expires_at (expires_at) ) $charset_collate;"; // Local detections table (cache) $sql_detections = "CREATE TABLE IF NOT EXISTS wp_webdecoy_detections ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, remote_id VARCHAR(36) DEFAULT NULL, ip_address VARCHAR(45) NOT NULL, user_agent TEXT, score INT UNSIGNED DEFAULT 0, threat_level VARCHAR(20) DEFAULT 'MINIMAL', source VARCHAR(50) DEFAULT 'bot_scanner', flags TEXT DEFAULT NULL, created_at DATETIME NOT NULL, PRIMARY KEY (id), KEY ip_address (ip_address), KEY created_at (created_at), KEY threat_level (threat_level) ) $charset_collate;"; // Rate limiting table $sql_rate_limits = "CREATE TABLE IF NOT EXISTS wp_webdecoy_rate_limits ( ip_address VARCHAR(45) NOT NULL, request_count INT UNSIGNED DEFAULT 1, window_start DATETIME NOT NULL, PRIMARY KEY (ip_address), KEY window_start (window_start) ) $charset_collate;"; // Checkout attempts table (WooCommerce) $sql_checkout = "CREATE TABLE IF NOT EXISTS wp_webdecoy_checkout_attempts ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, ip_address VARCHAR(45) NOT NULL, order_id BIGINT UNSIGNED DEFAULT NULL, status VARCHAR(20) DEFAULT 'attempt', amount DECIMAL(10, 2) DEFAULT 0.00, card_last4 VARCHAR(4) DEFAULT NULL, created_at DATETIME NOT NULL, PRIMARY KEY (id), KEY ip_address (ip_address), KEY created_at (created_at), KEY status (status) ) $charset_collate;"; // Violation queue table — spool for rule-engine violations awaiting // delivery to the ingest service (resilient reporting: survives ingest // downtime, retried by cron). Only used when a Cloud API key is set. $sql_violation_queue = "CREATE TABLE IF NOT EXISTS wp_webdecoy_violation_queue ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, payload LONGTEXT NOT NULL, attempts TINYINT UNSIGNED DEFAULT 0, created_at DATETIME NOT NULL, PRIMARY KEY (id), KEY created_at (created_at) ) $charset_collate;"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta($sql_blocked);
Safe to delete?
If you have uninstalled WebDecoy Bot Detection – Block AI Crawlers, Spam Bots & Card Testing, this table is generally safe to remove. However, always back up your database first.
Note: Some plugins share tables or are dependencies of other plugins. Verify nothing else depends on this table before dropping it.
How to remove this table
DROP TABLE IF EXISTS `wp_webdecoy_blocked_ips`;
Run this query using phpMyAdmin, Adminer, or your MySQL client. Back up first.
Other tables from WebDecoy Bot Detection – Block AI Crawlers, Spam Bots & Card Testing