{"id":354651,"date":"2026-09-03T10:21:48","date_gmt":"2026-09-03T10:21:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/algo-spam-user-wiper\/"},"modified":"2026-09-03T10:21:40","modified_gmt":"2026-09-03T10:21:40","slug":"algo-spam-user-wiper","status":"publish","type":"plugin","link":"https:\/\/bcc.wordpress.org\/plugins\/algo-spam-user-wiper\/","author":23548793,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.7","stable_tag":"1.6.7","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Algo Spam User Wiper","header_author":"Rajni Nair (Algorisys)","header_description":"Find users by email domain, soft-delete them into Trash, permanently delete in batches, and block blacklisted domains from registering.","assets_banners_color":"","last_updated":"2026-09-03 10:21:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/algorisys.com\/wordpress-plugins\/","header_author_uri":"https:\/\/algorisys.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":55,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.6.7":{"tag":"1.6.7","author":"algorisys","date":"2026-09-03 10:21:40","revision":3679550}},"upgrade_notice":{"1.6.7":"<p>Plugin Check cleanup. Features are unchanged.<\/p>","1.6.6":"<p>Plugin Check \/ WordPress.org coding-standard fixes. Features are unchanged.<\/p>","1.6.5":"<p>Packaging update for WordPress.org. Features are unchanged.<\/p>","1.6.0":"<p>Adds a top-level Dashboard with product screenshots. Tools are under Spam User Wiper in the admin menu.<\/p>","1.5.0":"<p>Adds registration blocking for blacklisted email domains. Configure under Spam User Wiper \u2192 Block domains.<\/p>","1.4.2":"<p>Adds optional content reassignment before permanent delete. Review the setting on the Trash screen before emptying trash.<\/p>","1.4.0":"<p>Test-data tools are hidden unless debug\/test mode is enabled. Uninstall now clears plugin meta safely.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.6.7"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Product dashboard","2":"Find users by email domain","3":"Confirm IDs before moving to trash","4":"User Trash with restore \/ permanent delete","5":"Block domains registration blacklist"}},"plugin_section":[],"plugin_tags":[3786,600,599,4667,1917],"plugin_category":[54],"plugin_contributors":[279005],"plugin_business_model":[],"class_list":["post-354651","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-security","plugin_tags-spam","plugin_tags-trash","plugin_tags-users","plugin_category-security-and-spam-protection","plugin_contributors-rajninair","plugin_committers-algorisys"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/algo-spam-user-wiper.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Algo Spam User Wiper helps site admins clean spam registrations by email domain \u2014 and stop more from signing up.<\/p>\n\n<ul>\n<li>Search users whose email ends with a domain (e.g. <code>spam-domain.com<\/code>)<\/li>\n<li>Administrators are excluded by default; your own account is never listed<\/li>\n<li>Soft-delete into a User Trash (login blocked, hidden from Users list)<\/li>\n<li>Confirm IDs before trashing<\/li>\n<li>Empty Trash in small AJAX batches to avoid server timeouts<\/li>\n<li>Optional content reassignment before permanent delete<\/li>\n<li>Restore from trash if you change your mind<\/li>\n<li>Block domains \u2014 reject new registrations from a blacklist (WordPress, multisite signup, WooCommerce)<\/li>\n<\/ul>\n\n<p>This plugin is free. All features listed above work without a license key or upgrade.<\/p>\n\n<p><strong>Multisite:<\/strong> User find \/ trash \/ delete tools are not available on multisite. Domain registration blocking still works.<\/p>\n\n<p><strong>Test tools:<\/strong> Creating sample spam users is disabled in production. Enable only while <code>WP_DEBUG<\/code> is on, or define <code>ASUW_ENABLE_TEST_TOOLS<\/code> as <code>true<\/code> in <code>wp-config.php<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>algo-spam-user-wiper<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>Algo Spam User Wiper<\/strong> through the Plugins screen.<\/li>\n<li>Go to <strong>Spam User Wiper \u2192 Dashboard<\/strong> in the admin menu.<\/li>\n<li>Use <strong>Find by domain<\/strong>, <strong>Trash<\/strong>, or <strong>Block domains<\/strong> from the submenu.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20permanently%20delete%20users%20immediately%3F\"><h3>Does this permanently delete users immediately?<\/h3><\/dt>\n<dd><p>No. Matching users are moved to a plugin User Trash first. Permanent delete happens only when you Empty Trash or permanently delete selected trash rows.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20posts%20by%20trashed%20users%3F\"><h3>What happens to posts by trashed users?<\/h3><\/dt>\n<dd><p>Soft-delete removes roles and blocks login. On permanent delete, WordPress <code>wp_delete_user()<\/code> runs. By default that also removes content owned by the user. On the Trash screen you can choose an administrator to reassign posts to instead.<\/p><\/dd>\n<dt id=\"can%20i%20recover%20after%20empty%20trash%3F\"><h3>Can I recover after Empty Trash?<\/h3><\/dt>\n<dd><p>No. Empty Trash is permanent. Restore users from Trash before emptying if unsure.<\/p><\/dd>\n<dt id=\"how%20does%20domain%20registration%20blocking%20work%3F\"><h3>How does domain registration blocking work?<\/h3><\/dt>\n<dd><p>Under <strong>Block domains<\/strong>, list domains (one per line). When blocking is enabled, new signups using those email domains are rejected on the default WordPress registration form, multisite user signup, and WooCommerce registration (if active). Existing accounts are unchanged \u2014 use Find + Trash to clean those up.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20to%20external%20servers%3F\"><h3>Does this plugin send data to external servers?<\/h3><\/dt>\n<dd><p>No. Algo Spam User Wiper does not phone home. It only stores trash markers, blocklist settings, and optional reassignment settings in your WordPress database. No user data is sent to Algorisys or third-party servers. On uninstall, plugin meta is cleared and soft-trashed users have their roles restored when possible (users are not permanently deleted by uninstall).<\/p><\/dd>\n<dt id=\"how%20do%20i%20enable%20the%20test-data%20buttons%3F\"><h3>How do I enable the test-data buttons?<\/h3><\/dt>\n<dd><p>In <code>wp-config.php<\/code>, either keep <code>WP_DEBUG<\/code> true for local development, or add:<\/p>\n\n<pre><code>define( 'ASUW_ENABLE_TEST_TOOLS', true );\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.7<\/h4>\n\n<ul>\n<li>Plugin Check: sanitize admin GET helper; ignore expected usermeta update queries<\/li>\n<\/ul>\n\n<h4>1.6.6<\/h4>\n\n<ul>\n<li>Plugin Check \/ WordPress.org coding standards: escaping, translators comments, admin GET helpers<\/li>\n<li>WordPress.org loads translations automatically (removed load_plugin_textdomain)<\/li>\n<\/ul>\n\n<h4>1.6.5<\/h4>\n\n<ul>\n<li>WordPress.org packaging: Stable tag matches plugin version; tags limited to five<\/li>\n<li>Development capture files are no longer part of the plugin<\/li>\n<\/ul>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>Add product dashboard screenshot as the first hub \/ marketplace preview<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Top-level <strong>Spam User Wiper<\/strong> menu with a Dashboard hub (features + screenshots)<\/li>\n<li>Tool screens moved to Dashboard \/ Find \/ Trash \/ Block submenus<\/li>\n<li>Multisite: Block domains admin actions work from the new menu<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Block blacklisted email domains from registering (WordPress, multisite, WooCommerce)<\/li>\n<li>Block domains admin screen + quick-add from Find results<\/li>\n<li>Subdomain matching option<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Optional content reassignment before Empty Trash \/ permanent delete<\/li>\n<li>Stronger permanent-delete warnings; Privacy FAQ; Tested up to WordPress 7.0<\/li>\n<li>Packaging cleanup for free public testing<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Custom in-admin confirmation modal instead of browser confirm dialogs<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Packaging for public release: license, readme, uninstall cleanup<\/li>\n<li>Gate test-user seeder behind WP_DEBUG \/ ASUW_ENABLE_TEST_TOOLS<\/li>\n<li>Load text domain; add Plugin\/Author URI and license headers<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Batch AJAX trash \/ empty trash improvements<\/li>\n<\/ul>","raw_excerpt":"Find WordPress users by email domain, soft-delete them into Trash, permanently delete in batches, and block blacklisted domains from registering.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=354651"}],"author":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/algorisys"}],"wp:attachment":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354651"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354651"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354651"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354651"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354651"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}