{"id":323488,"date":"2026-07-17T15:22:49","date_gmt":"2026-07-17T15:22:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/data-hygiene-for-woocommerce\/"},"modified":"2026-07-18T01:40:57","modified_gmt":"2026-07-18T01:40:57","slug":"data-hygiene-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/es-gt.wordpress.org\/plugins\/data-hygiene-for-woocommerce\/","author":23509272,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Data Hygiene for WooCommerce","header_author":"Business Khana","header_description":"Detect, quarantine and clean WooCommerce Analytics data corruption \u2014 orphan orders, test orders, duplicates, status mismatches \u2014 with payment gateway reconciliation. Dry-run mode and full undo log included.","assets_banners_color":"","last_updated":"2026-07-18 01:40: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":76,"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":"businesskhana","date":"2026-07-17 15:22:18"},"1.1.0":{"tag":"1.1.0","author":"businesskhana","date":"2026-07-18 01:40:57"}},"upgrade_notice":{"1.1.0":"<p>Adds an optional Pro tier. All existing free features remain unchanged.<\/p>","1.0.0":"<p>First public release. Always run a dry-run scan before quarantining on a production store.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard with confidence score gauge and scan summary","2":"Scan results with issue details and dry-run preview","3":"Quarantine management with restore and bulk actions","4":"Confirmation modal before any destructive action","5":"Audit log showing every recorded change","6":"Settings page with scan configuration"}},"plugin_section":[262246],"plugin_tags":[232,272047,193334,265792,286],"plugin_category":[36,45],"plugin_contributors":[266017],"plugin_business_model":[],"class_list":["post-323488","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-analytics","plugin_tags-data-cleaning","plugin_tags-quarantine","plugin_tags-reconciliation","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_contributors-businesskhana","plugin_committers-businesskhana"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/data-hygiene-for-woocommerce.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Data Hygiene for WooCommerce<\/strong> detects, quarantines, and fixes data corruption in WooCommerce Analytics \u2014 safely, with a dry-run preview and a full undo log for every destructive action.<\/p>\n\n<p>If your WooCommerce reports show inflated revenue, duplicate orders, or numbers that just don't add up, this plugin finds out why and helps you fix it without ever losing data.<\/p>\n\n<h4>The Problem<\/h4>\n\n<p>WooCommerce stores commonly suffer from analytics data corruption:<\/p>\n\n<ul>\n<li><strong>Orphan orders<\/strong> in analytics tables with no matching order record<\/li>\n<li><strong>Test orders<\/strong> from admin emails polluting revenue reports<\/li>\n<li><strong>Duplicate orders<\/strong> from double-clicks or payment retries<\/li>\n<li><strong>Status mismatches<\/strong> \u2014 completed orders with no payment method<\/li>\n<li><strong>Invalid dates<\/strong> \u2014 future dates or impossible timestamps<\/li>\n<li><strong>Amount anomalies<\/strong> \u2014 negative totals or zero-amount completed orders<\/li>\n<\/ul>\n\n<h4>What This Plugin Does<\/h4>\n\n<ol>\n<li><strong>Smart Scanning<\/strong> \u2014 6 specialized scan modules analyze your orders for common data issues<\/li>\n<li><strong>Dry-Run Mode<\/strong> \u2014 preview every change before anything is touched<\/li>\n<li><strong>Quarantine System<\/strong> \u2014 suspicious data is moved to quarantine, not deleted. Full undo support.<\/li>\n<li><strong>Audit Log<\/strong> \u2014 every destructive operation is recorded with user, time, and reason<\/li>\n<li><strong>Data Confidence Score<\/strong> \u2014 a 0-100% score showing how trustworthy your analytics data is<\/li>\n<li><strong>Payment Reconciliation<\/strong> \u2014 match WooCommerce orders against Stripe \/ PayPal records<\/li>\n<li><strong>Weekly Auto-Scan<\/strong> \u2014 automatic weekly scans with email alerts when your score drops<\/li>\n<li><strong>WP Dashboard Widget<\/strong> \u2014 see your confidence score at a glance<\/li>\n<\/ol>\n\n<h4>Key Differentiators<\/h4>\n\n<ul>\n<li><strong>Analytics-specific<\/strong> \u2014 understands WooCommerce Analytics data structure<\/li>\n<li><strong>Safety-first<\/strong> \u2014 dry-run + confirmation modal + audit log on every destructive op<\/li>\n<li><strong>Quarantine, not delete<\/strong> \u2014 move data to review, never lose it<\/li>\n<li><strong>Full undo<\/strong> \u2014 restore any quarantined item to its original state<\/li>\n<li><strong>Gateway reconciliation<\/strong> \u2014 verify WooCommerce totals match Stripe \/ PayPal<\/li>\n<li><strong>HPOS-ready<\/strong> \u2014 works with the new high-performance order storage<\/li>\n<\/ul>\n\n<h4>Supported Payment Gateways<\/h4>\n\n<ul>\n<li>Stripe (WooCommerce Stripe Gateway)<\/li>\n<li>PayPal (WooCommerce PayPal Payments, PayPal Standard)<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>All scanning and cleaning runs locally on your own server. No order, customer, or payment data ever leaves your WordPress install. Reconciliation calls are sent directly from your server to Stripe \/ PayPal using credentials you provide. See PRIVACY.md in the plugin folder for full details.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin includes an <strong>optional<\/strong> Payment Reconciliation feature. When \u2014 and only when \u2014 you enable it and enter your own payment gateway API credentials, the plugin contacts the third-party services listed below to match your WooCommerce order totals against the payment processor's own records. If you do not enable reconciliation, the plugin makes no external calls and operates entirely on your own server.<\/p>\n\n<h4>Stripe<\/h4>\n\n<p>Used to retrieve your own Stripe charge and balance-transaction records so they can be reconciled against your WooCommerce orders.<\/p>\n\n<ul>\n<li>What is sent: your Stripe secret API key (as an Authorization header) and request parameters for the date range and pagination. No customer personal data is transmitted.<\/li>\n<li>When: only when you run a reconciliation that includes Stripe, or during the optional weekly auto-scan if Stripe reconciliation is enabled.<\/li>\n<li>Endpoint: https:\/\/api.stripe.com<\/li>\n<li>Terms of Service: https:\/\/stripe.com\/legal\/ssa<\/li>\n<li>Privacy Policy: https:\/\/stripe.com\/privacy<\/li>\n<\/ul>\n\n<h4>PayPal<\/h4>\n\n<p>Used to retrieve your own PayPal transaction records so they can be reconciled against your WooCommerce orders.<\/p>\n\n<ul>\n<li>What is sent: your PayPal client ID and secret (to obtain a short-lived OAuth token) and request parameters for the date range. No customer personal data is transmitted.<\/li>\n<li>When: only when you run a reconciliation that includes PayPal, or during the optional weekly auto-scan if PayPal reconciliation is enabled.<\/li>\n<li>Endpoints: https:\/\/api-m.paypal.com (live) and https:\/\/api-m.sandbox.paypal.com (sandbox\/testing)<\/li>\n<li>Terms of Service: https:\/\/www.paypal.com\/us\/legalhub\/useragreement-full<\/li>\n<li>Privacy Policy: https:\/\/www.paypal.com\/us\/legalhub\/privacy-full<\/li>\n<\/ul>\n\n<h3>Development<\/h3>\n\n<p>The admin interface is built with React using the official @wordpress\/scripts (webpack) build tooling. The complete, un-minified, human-readable source is included in this plugin under the <code>src\/<\/code> directory, and the compiled output it generates lives in <code>build\/<\/code>.<\/p>\n\n<p>The public development repository (full source and build tooling) is available at:\nhttps:\/\/github.com\/mohannadshaddy-businesskhana\/data-hygiene-for-woocommerce<\/p>\n\n<p>To rebuild the compiled assets from source:<\/p>\n\n<pre><code>npm install\nnpm run build\n<\/code><\/pre>\n\n<p>The build scripts are defined in <code>package.json<\/code> at the plugin root. The source in <code>src\/<\/code> is what generates <code>build\/index.js<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/data-hygiene-for-woocommerce\/<\/code>, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Go to WooCommerce \u2192 Data Hygiene.<\/li>\n<li>Run a <strong>Dry-Run scan<\/strong> first to preview issues, then quarantine.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20delete%20my%20orders%3F\"><h3>Will this delete my orders?<\/h3><\/dt>\n<dd><p>No. The plugin uses a quarantine system. Suspicious orders are moved to a quarantine table with a full backup of the original data. You can restore any quarantined item at any time. Every destructive operation is recorded in an audit log.<\/p><\/dd>\n<dt id=\"what%20is%20dry-run%20mode%3F\"><h3>What is dry-run mode?<\/h3><\/dt>\n<dd><p>Dry-run runs the full scan and shows you exactly what would be quarantined \u2014 without touching a single row. You only commit when you click confirm.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Does it work with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. The plugin fully supports both the traditional posts-based storage and the new HPOS custom order tables.<\/p><\/dd>\n<dt id=\"how%20does%20the%20confidence%20score%20work%3F\"><h3>How does the confidence score work?<\/h3><\/dt>\n<dd><p>The score starts at 100% and decreases based on the number and severity of issues found. More critical issues (like future dates or negative amounts) have a higher impact than minor issues.<\/p><\/dd>\n<dt id=\"can%20i%20scan%20only%20specific%20issue%20types%3F\"><h3>Can I scan only specific issue types?<\/h3><\/dt>\n<dd><p>Yes. The Quick Scan checks for orphan orders, test orders, and amount issues. The Full Scan runs all 6 modules.<\/p><\/dd>\n<dt id=\"does%20any%20data%20leave%20my%20server%3F\"><h3>Does any data leave my server?<\/h3><\/dt>\n<dd><p>No. Scanning is 100% local. Only the optional payment gateway reconciliation makes outbound calls \u2014 directly from your server to Stripe \/ PayPal using your own credentials. See the \"External services\" section above.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: optional Pro license framework<\/li>\n<li>Added: Pro \u2014 full CSV export of scan history<\/li>\n<li>Added: Pro \u2014 scheduled data-health email reports (weekly \/ monthly)<\/li>\n<li>All existing free features remain unchanged<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>6 scan modules: orphan, test, duplicate, status, date, amount<\/li>\n<li>Dry-run mode with confirmation modal<\/li>\n<li>Quarantine system with full undo<\/li>\n<li>Audit log for every destructive operation<\/li>\n<li>Stripe and PayPal reconciliation<\/li>\n<li>Data confidence score algorithm<\/li>\n<li>Weekly auto-scan with email alerts<\/li>\n<li>WP Dashboard widget<\/li>\n<li>HPOS compatibility<\/li>\n<\/ul>","raw_excerpt":"Detect, quarantine and clean WooCommerce Analytics data corruption with dry-run mode, full undo log and payment gateway reconciliation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323488"}],"author":[{"embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/businesskhana"}],"wp:attachment":[{"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323488"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323488"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323488"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323488"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323488"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-gt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}