{"id":388685,"date":"2026-10-26T19:26:56","date_gmt":"2026-10-26T19:26:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kowalski-smart-shield\/"},"modified":"2026-10-26T19:50:51","modified_gmt":"2026-10-26T19:50:51","slug":"kowalski-smart-shield","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/kowalski-smart-shield\/","author":23588177,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.1","stable_tag":"0.5.1","tested":"7.1.3","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Kowalski Smart Shield","header_author":"Kowalski Smart Solutions sp. z o.o.","header_description":"Ochrona formularzy Fluent Forms, Contact Form 7, WPForms i Elementor Forms przed spamem oraz automatycznymi zg\u0142oszeniami.","assets_banners_color":"","last_updated":"2026-10-26 19:50:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/kowalski-smart-solutions.pl\/kowalski-smart-shield\/","header_author_uri":"https:\/\/kowalski-smart-solutions.pl\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5.1":{"tag":"0.5.1","author":"kowalskismart","date":"2026-10-26 19:50:51","revision":3767228}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3767268,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3767268,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.5.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[109,1154,601,600,599],"plugin_category":[42,54],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-388685","plugin","type-plugin","status-publish","hentry","plugin_tags-antispam","plugin_tags-contact-forms","plugin_tags-forms","plugin_tags-security","plugin_tags-spam","plugin_category-contact-forms","plugin_category-security-and-spam-protection","plugin_committers-kowalskismart"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kowalski-smart-shield\/assets\/icon-128x128.png?rev=3767268","icon_2x":"https:\/\/ps.w.org\/kowalski-smart-shield\/assets\/icon-256x256.png?rev=3767268","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Kowalski Smart Shield analyzes form submissions locally using a shared scoring engine.\nAdapters are included for Fluent Forms, Contact Form 7, WPForms and Elementor Forms (Elementor Pro required).\nAdapter availability does not guarantee compatibility with every version or configuration.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Rule scores and detection categories.<\/li>\n<li>Monitoring and blocking modes.<\/li>\n<li>Email, domain and IP allowlists and blocklists.<\/li>\n<li>An IP submission limit and an optional form timing heuristic.<\/li>\n<li>Detection logs, retention settings and CSV export.<\/li>\n<li>A dashboard showing active adapters and system checks.<\/li>\n<\/ul>\n\n<p>New installations start in monitoring mode. Existing settings are preserved during upgrades.\nThe form timer is a heuristic and is not authentication. The submission limit is not an atomic concurrency control.\nThis release candidate has been tested with Contact Form 7, Fluent Forms and WPForms Lite on a dedicated MariaDB test site. Elementor Pro has not been verified in that environment. The administrator interface currently uses Polish; complete internationalization is still in progress.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin does not send submissions to an external analysis service.\nWhen logging is enabled, it stores a salted hash of the client IP and email address and an excerpt of submission content.\nEmail addresses and phone numbers in excerpts are masked, but names, addresses or other personal information may remain.\nHashing is pseudonymization and must not be described as complete anonymization.\nLogs are kept for 30 days by default; administrators can change retention or disable logging.\nViewing and exporting logs requires the manage_options capability.\nUninstallation removes settings and the event table. Exported CSV files remain the administrator's responsibility.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Back up your site and database before upgrading.<\/li>\n<li>Upload the plugin ZIP from Plugins &gt; Add New, or copy the plugin directory into wp-content\/plugins.<\/li>\n<li>Activate Kowalski Smart Shield.<\/li>\n<li>Open Smart Shield &gt; Settings and start in monitoring mode.<\/li>\n<li>Test legitimate and known spam submissions before enabling blocking.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20send%20submissions%20to%20a%20cloud%20service%3F\"><h3>Does this plugin send submissions to a cloud service?<\/h3><\/dt>\n<dd><p>No. Analysis takes place locally in WordPress. Form email delivery is handled by your form and email plugins.<\/p><\/dd>\n<dt id=\"which%20forms%20are%20supported%3F\"><h3>Which forms are supported?<\/h3><\/dt>\n<dd><p>Adapters are included for Fluent Forms, Contact Form 7, WPForms and Elementor Forms with Elementor Pro.\nTest the adapter with your form configuration before using blocking mode.<\/p><\/dd>\n<dt id=\"why%20is%20a%20legitimate%20message%20absent%20from%20the%20event%20log%3F\"><h3>Why is a legitimate message absent from the event log?<\/h3><\/dt>\n<dd><p>The log records detected events, including detections below the blocking threshold. It is not a record of every submission.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20the%20plugin%20is%20deactivated%20or%20uninstalled%3F\"><h3>What happens when the plugin is deactivated or uninstalled?<\/h3><\/dt>\n<dd><p>Deactivation preserves settings and logs. Uninstallation removes the plugin settings and its event table.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Use the unique kowalskiss prefix for classes, options, hooks, assets and form fields.<\/li>\n<li>Migrate pre-directory log tables atomically and preserve settings and event IDs.<\/li>\n<li>Preserve active rate-limit windows and administrator notification state.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Fixed WPForms blocking with registry-backed process objects.<\/li>\n<li>Verified settings and logs survive a real alpha2 to alpha4 ZIP upgrade.<\/li>\n<li>Verified retention and successful WP-Cron cleanup dispatch on MariaDB.<\/li>\n<\/ul>\n\n<h4>0.5.0-alpha4<\/h4>\n\n<ul>\n<li>Added an English directory readme and updated the tested WordPress version after lab checks.<\/li>\n<li>Removed a nonexistent translation directory header and premature manual translation loading.<\/li>\n<\/ul>\n\n<h4>0.5.0-alpha3<\/h4>\n\n<ul>\n<li>Added plugin license headers and corrected tags and release history.<\/li>\n<li>Prepared SQL table identifiers using identifier placeholders.<\/li>\n<li>Hardened administrative notice query parameters and documented privacy behavior.<\/li>\n<li>Prepared a clean installation package without development tests and reports.<\/li>\n<\/ul>\n\n<h4>0.5.0-alpha2<\/h4>\n\n<ul>\n<li>Fixed form timing, IP limits, retention, masking and CSV handling.<\/li>\n<li>Reduced false phrase matches and improved field normalization.<\/li>\n<li>Added regression tests and monitoring defaults for new installations.<\/li>\n<\/ul>\n\n<h4>0.5.0-alpha1<\/h4>\n\n<ul>\n<li>Reviewed architecture and added plugin branding and licensing documentation.<\/li>\n<\/ul>","raw_excerpt":"Local, rule-based spam protection for WordPress forms, with scoring, monitoring, blocking and event logs. Release candidate.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/388685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=388685"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kowalskismart"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=388685"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=388685"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=388685"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=388685"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=388685"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=388685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}