{"id":388706,"date":"2026-10-25T11:27:21","date_gmt":"2026-10-25T11:27:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/deskhush-data-cleanup\/"},"modified":"2026-10-25T11:26:57","modified_gmt":"2026-10-25T11:26:57","slug":"deskhush-data-cleanup","status":"publish","type":"plugin","link":"https:\/\/fr-be.wordpress.org\/plugins\/deskhush-data-cleanup\/","author":23575452,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.10","stable_tag":"0.2.10","tested":"7.1.3","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Deskhush Data Cleanup","header_author":"Jason Madden","header_description":"Find leftover plugin options after uninstall. Review before delete \u2014 no scheduled auto-clean.","assets_banners_color":"d1d7de","last_updated":"2026-10-25 11:26:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":56,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.10":{"tag":"0.2.10","author":"jasonmad","date":"2026-10-25 11:26:57","revision":3764427}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3764427,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3764427,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3764427,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3764427,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.10"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[3786,153,2218,267125,11339],"plugin_category":[59],"plugin_contributors":[78154,286989],"plugin_business_model":[],"class_list":["post-388706","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-database","plugin_tags-options","plugin_tags-orphaned","plugin_tags-uninstall","plugin_category-utilities-and-tools","plugin_contributors-freemius","plugin_contributors-jasonmad","plugin_committers-jasonmad"],"banners":{"banner":"https:\/\/ps.w.org\/deskhush-data-cleanup\/assets\/banner-772x250.png?rev=3764427","banner_2x":"https:\/\/ps.w.org\/deskhush-data-cleanup\/assets\/banner-1544x500.png?rev=3764427","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/deskhush-data-cleanup\/assets\/icon-128x128.png?rev=3764427","icon_2x":"https:\/\/ps.w.org\/deskhush-data-cleanup\/assets\/icon-256x256.png?rev=3764427","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>For site owners and ops teams reviewing leftover plugin data after uninstalls or migrations \u2014 nothing is deleted on a schedule.<\/p>\n\n<p><strong>Free<\/strong><\/p>\n\n<ul>\n<li>Scan WordPress options left by inactive or deleted plugins<\/li>\n<li>Review and delete selected options<\/li>\n<li>Cleanup action log<\/li>\n<\/ul>\n\n<p><strong>Pro<\/strong><\/p>\n\n<ul>\n<li>Table, transient, and cron event detection<\/li>\n<li>Confidence and risk labels<\/li>\n<li>Ignore rules \/ allowlist (option names or table prefixes never suggested)<\/li>\n<li>Expanded signature pack for common plugins<\/li>\n<li>Export-before-delete JSON backup<\/li>\n<\/ul>\n\n<p>Unknown-origin tables are review-only. Always review before delete.<\/p>\n\n<p>This Free package is fully usable on its own. Pro is distributed separately via Freemius.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate through the Plugins screen<\/li>\n<li>Open <strong>Deskhush Cleanup<\/strong> in the dashboard<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20lock%20paid%20features%20inside%20the%20free%20plugin%3F\"><h3>Does this lock paid features inside the free plugin?<\/h3><\/dt>\n<dd><p>No. Everything shipped in this package works. Pro scan types and export live in the Pro package.<\/p><\/dd>\n<dt id=\"does%20this%20support%20wordpress%20multisite%3F\"><h3>Does this support WordPress Multisite?<\/h3><\/dt>\n<dd><p>Not in v1. Use on single-site installs only.<\/p><\/dd>\n<dt id=\"will%20it%20auto-delete%20data%3F\"><h3>Will it auto-delete data?<\/h3><\/dt>\n<dd><p>No. v1 never schedules automatic deletion. Unknown-risk \/ unknown-origin tables cannot be deleted through this plugin. Known leftover tables require typing DELETE to confirm.<\/p><\/dd>\n<dt id=\"is%20delete%20safe%3F\"><h3>Is delete safe?<\/h3><\/dt>\n<dd><p>Treat deletes as irreversible. Export or back up the site before removing tables or large option sets. If an item is marked unknown, leave it until you are sure it belongs to a removed plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.10<\/h4>\n\n<ul>\n<li>Fixed: Risk and confidence labels are included only with Pro<\/li>\n<li>Fixed: Option delete runs only for a known leftover from an inactive plugin<\/li>\n<\/ul>\n\n<h4>0.2.9<\/h4>\n\n<ul>\n<li>Fixed: Freemius init matches the integration snippet, so the Free package does not ask for a license key<\/li>\n<\/ul>\n\n<h4>0.2.8<\/h4>\n\n<ul>\n<li>Fixed: Options, hooks, Ajax actions, and menu slugs use the dhdc prefix<\/li>\n<\/ul>\n\n<h4>0.2.7<\/h4>\n\n<ul>\n<li>Fixed: Pro-only features are removed from the Free package. What remains works without a license.<\/li>\n<\/ul>\n\n<h4>0.2.6<\/h4>\n\n<ul>\n<li>Note: Display name Deskhush Data Cleanup; folder and text domain deskhush-data-cleanup<\/li>\n<li>Fixed: Global prefix is dhdc (Plugin Check PrefixAllGlobals)<\/li>\n<\/ul>\n\n<h4>0.2.5<\/h4>\n\n<ul>\n<li>Fixed: Admin fatal when Freemius Free strips <code>is__premium_only<\/code> \u2014 use <code>plugin_suite_fs_can_use_pro()<\/code><\/li>\n<\/ul>\n\n<h4>0.2.4<\/h4>\n\n<ul>\n<li>Fixed: Activation fatal when another suite plugin is already active (shared PHP redeclare guards)<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>Fixed: Free ZIP activation fatal \u2014 Freemius strips <code>is__premium_only<\/code> methods; use safe stubs<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Fixed: Plugin Check i18n translators comments and ordered placeholders<\/li>\n<li>Improved: AJAX confirm input sanitization; cleanup log SQL uses escaped table name<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Improved: Consistent card\/toolbar styling across Scan, Action Log, and Settings (doc 25)<\/li>\n<li>Fixed: Admin assets load via submenu ?page= router<\/li>\n<li>Fixed: Plugin headers for WordPress.org (Tested up to 7.1; remove example.com URI)<\/li>\n<li>Fixed: Multisite activation blocked with clear error (ADR-09)<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Pro: ignore rules \/ allowlist for options and table prefixes<\/li>\n<li>Pro: expanded signature pack (v2)<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Improved: Initial release<\/li>\n<\/ul>","raw_excerpt":"Find leftover plugin options after uninstall. Complements \u2014 does not replace \u2014 full database optimizers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/388706","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=388706"}],"author":[{"embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jasonmad"}],"wp:attachment":[{"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=388706"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=388706"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=388706"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=388706"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=388706"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fr-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=388706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}