{"id":321637,"date":"2026-06-03T09:23:47","date_gmt":"2026-06-03T09:23:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/doltics-radar\/"},"modified":"2026-06-03T09:23:19","modified_gmt":"2026-06-03T09:23:19","slug":"doltics-radar","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/doltics-radar\/","author":23510231,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"5.7","requires_php":"7.4","requires_plugins":null,"header_name":"Doltics Radar","header_author":"doltics","header_description":"Blocks enabled email, comment, and registration submissions when a spam protection API flags the content.","assets_banners_color":"e4e6e8","last_updated":"2026-06-03 09:23:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/doltics.com\/products\/radar\/","header_author_uri":"https:\/\/doltics.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"doltics","date":"2026-06-03 09:23:19"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3559124,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3559124,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3559124,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[107,267,603,600,599],"plugin_category":[41,44,54],"plugin_contributors":[265603],"plugin_business_model":[],"class_list":["post-321637","plugin","type-plugin","status-publish","hentry","plugin_tags-comments","plugin_tags-email","plugin_tags-registration","plugin_tags-security","plugin_tags-spam","plugin_category-communication","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-doltics","plugin_committers-doltics"],"banners":{"banner":"https:\/\/ps.w.org\/doltics-radar\/assets\/banner-772x250.png?rev=3559124","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/doltics-radar\/assets\/icon-128x128.png?rev=3559124","icon_2x":"https:\/\/ps.w.org\/doltics-radar\/assets\/icon-256x256.png?rev=3559124","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Doltics Radar checks enabled WordPress flows before they complete. Admins can enable protection for outbound email, submitted comments, and account registrations under Settings &gt; Doltics Radar.<\/p>\n\n<p>Email protection uses WordPress core mail hooks when available. Doltics Radar also includes a Mailgun compatibility adapter for Mailgun versions that replace <code>wp_mail()<\/code> without calling <code>pre_wp_mail<\/code>.<\/p>\n\n<h3>API Contract<\/h3>\n\n<p>The plugin sends a JSON <code>POST<\/code> request to the URL <code>https:\/\/radar.doltics.com\/score<\/code> :<\/p>\n\n<pre><code>{\n  \"text\": \"The sample text\",\n  \"locale\": \"en\"\n}\n<\/code><\/pre>\n\n<p>The API should return JSON using one of these response shapes:<\/p>\n\n<pre><code>{\n  \"score\": 0.95,\n  \"classification\": \"spam\",\n  \"signals\": {\n    \"token_count\": 10,\n    \"unknown_word_ratio\": 0.1,\n    \"spam_keyword_score\": 0.61,\n    \"uppercase_ratio\": 0.34,\n    \"exclamation_density\": 0.3,\n    \"url_count\": 1\n  }\n}\n<\/code><\/pre>\n\n<p>Numeric scores are compared against the configured threshold.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload this folder to <code>wp-content\/plugins\/doltics-radar<\/code>.<\/li>\n<li>Activate Doltics Radar in WordPress.<\/li>\n<li>Configure the plugin under Settings &gt; Doltics Radar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20makes%20this%20spam%20scoring%20engine%20%22smart%22%20compared%20to%20traditional%20filters%3F\"><h3>What makes this spam scoring engine \"smart\" compared to traditional filters?<\/h3><\/dt>\n<dd><p>Traditional filters rely heavily on static keyword blocking, which spammers easily bypass. Our engine uses a dynamic weighted scoring system. It extracts text, analyzes standard language patterns, filters anomalies, and fact-checks content against localized linguistic data. Instead of a simple \"yes or no\" flag, it combines multiple heuristics to give you a highly accurate, nuanced probability score.<\/p><\/dd>\n<dt id=\"how%20does%20the%20weighted%20scoring%20engine%20work%3F\"><h3>How does the weighted scoring engine work?<\/h3><\/dt>\n<dd><p>The engine evaluates incoming text through multiple independent lenses (heuristics), such as syntax anomalies, sender reputation, and localized language patterns.<\/p><\/dd>\n<dt id=\"what%20does%20%22localized%20language%20filtering%22%20mean%3F\"><h3>What does \"localized language filtering\" mean?<\/h3><\/dt>\n<dd><p>Spam looks different in every language and region. Slang, common idioms, and phrasing vary wildly. Our engine doesn't just translate text; it analyzes it against the specific rules and nuances of the local language context. This drastically reduces false positives caused by regional dialects or informal business language.<\/p><\/dd>\n<dt id=\"how%20does%20the%20engine%20%22fact-check%22%20text%3F\"><h3>How does the engine \"fact-check\" text?<\/h3><\/dt>\n<dd><p>The engine cross-references extracted text and claims against verified localized datasets to detect known phishing templates, fraudulent business pitches, and common scam setups. If a piece of text closely mimics a known malicious campaign or contains verifiable misinformation (like a fake lottery claim), its spam score increases accordingly.<\/p><\/dd>\n<dt id=\"does%20the%20text%20extraction%20process%20compromise%20user%20privacy%3F\"><h3>Does the text extraction process compromise user privacy?<\/h3><\/dt>\n<dd><p>Not at all. The text extraction and processing happen in real-time within a secure, encrypted pipeline. We isolate the standard linguistic patterns and words required for scoring, and we do not store the PII (Personally Identifiable Information) or the contents of the processed text post-analysis.<\/p><\/dd>\n<dt id=\"how%20does%20the%20engine%20handle%20sophisticated%20spam%20that%20uses%20intentional%20typos%3F\"><h3>How does the engine handle sophisticated spam that uses intentional typos?<\/h3><\/dt>\n<dd><p>Because our engine extracts normal words and filters them against localized language models, it excels at spotting \"leetspeak\" (e.g., replacing 'E' with '3') or intentional misspellings meant to trick basic filters. The system recognizes the underlying intent and penalizes the text for obfuscation tactics.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Protects selected WordPress email, comment, and registration flows with a spam protection API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/321637","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=321637"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/doltics"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=321637"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=321637"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=321637"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=321637"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=321637"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=321637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}