=== Jeet Shipping Data Checker ===
Contributors: jeetsanwal
Tags: woocommerce, shipping, product dimensions, product weight, variations
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Requires Plugins: woocommerce
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Review missing or invalid WooCommerce shipping measurements in small read-only batches, including effective variation values.

== Description ==

Jeet Shipping Data Checker gives store managers a compact, read-only review of effective product weight, length, width and height. Open WooCommerce > Shipping data, review a batch, and use native product edit links to correct the source data deliberately.

* Up to 25 products or variations are inspected per batch, with Previous and Next navigation.
* Separate product type, product status and title/content search controls.
* Clearly marked missing, zero, negative and non-numeric effective measurements.
* Variation values follow WooCommerce getters: empty saved values with effective values are labelled as parent/filter fallbacks.
* Variable parents and grouped containers are never marked as a successful child coverage check.
* A variable parent's Review variations link opens its own bounded variation batches.
* Virtual items are excluded when WooCommerce says they do not need shipping. Physical downloadable products are still inspected.
* External products are excluded because they ship outside this store. Custom product types are outside this report.
* Store-configured weight and dimension units are displayed and included in CSV.
* Shipping class is shown when present; it is optional and never treated as a missing measurement.
* Export the shown rows from one batch as CSV, with spreadsheet formula protection.

Only users with manage_woocommerce can open the report or export. A product edit link is shown only when the current user can edit that product. Export requires a valid WordPress nonce and a POST request. There are no public endpoints, frontend assets, background jobs, remote requests, catalogue writes, ads, telemetry, account requirements or paid features.

== Installation ==

1. Install and activate WooCommerce.
2. Upload the jeet-shipping-data-checker ZIP at Plugins > Add New > Upload Plugin, then activate it.
3. Open WooCommerce > Shipping data.
4. Choose a type, product status or title/content search. Review one batch and continue through Next batch.
5. Follow Edit product to correct measurements in the native product Shipping fields, or the parent's Variations fields for a variation.

Requires WordPress 6.5+, PHP 7.4+, and active WooCommerce. Tested with WordPress 7.1.3 and WooCommerce 11.2.1. The plugin does not read orders and declares WooCommerce HPOS compatibility.

== Frequently Asked Questions ==

= Does a green measurements badge prove shipping will work? =

No. It means the four effective values in that row are finite numbers greater than zero. It does not measure the physical item or check packing, carrier limits, package sizes, checkout quotes, prices, zones or shipping rules. Some shipping methods do not need every field; review findings against your actual setup.

= How does variation inheritance work? =

The report uses WooCommerce effective view getters, which include parent inheritance and the site's normal local extension filters. Blank variation measurements normally fall back to the parent. WooCommerce also treats a raw zero variation measurement as empty and can inherit a positive parent value. If the saved variation field is empty and the effective getter returns a value, the report labels it Effective fallback (parent/filter). This is an inferred fallback, not proof of the source: a local filter can supply the value before parent inheritance. Missing or non-positive effective values need review. Explicit variation values are inspected individually.

= Are downloadable products ignored? =

Only if WooCommerce says the item does not need shipping, usually because it is virtual. A downloadable product that is still physical is inspected. External products are excluded; grouped and variable parents are labelled containers and require their children or variations to be reviewed independently.

= Does the issue filter scan the whole catalogue? =

No. Each request loads at most 26 product objects: 25 reviewed rows plus one lookahead object to decide whether Next is available. Review-state filters apply to those 25 rows. An empty filtered batch is not proof of a clear catalogue; continue through Next. Type, status, title/content search and optional variation parent scope constrain the product query before pagination. Results are live and can shift if products are added, deleted or changed between requests. Default scope is published products and enabled variations; choose other statuses to review drafts or disabled variations.

= Can I export the whole catalogue? =

The CSV exports only the currently shown rows, up to 25, and is freshly read using the current filters. It is not a full-catalogue report or a stored snapshot. Large catalogues can be reviewed batch by batch without a large synchronous export. Spreadsheet formula prefixes in data cells are escaped with a leading apostrophe.

= Does it change missing weights or dimensions automatically? =

No. It never invents defaults, saves product fields or changes shipping rules. Use the normal product editor after checking the real item. No plugin-owned database records are created; deactivation or removal leaves your catalogue unchanged.

= Are custom product types or custom storage extensions supported? =

Version 1.0 includes WooCommerce's standard simple, variable, variation, grouped and external types. Bundles, subscriptions and other custom product types need their own extension's review and are outside this report. Reads use WooCommerce product objects and wc_get_products; unusual alternate product data stores may need separate compatibility testing, including title/content search. WooCommerce measurement filters can affect the effective values, so this is not a raw database audit.

= Does this plugin add anything to customer pages? =

No. It loads a small stylesheet only on its own admin page. No scripts, branding, external services, ads or data collection are added to public pages.

= How are updates installed? =

This is a self-hosted free GPL download. Install a newer ZIP through WordPress's normal upload-and-replace workflow. There is no automatic updater, paid upgrade or WordPress.org approval claim.

== Privacy ==

The plugin makes no network requests and creates no plugin-owned saved data. It reads existing WooCommerce product data for authorized shop managers and administrators. CSV files contain product names, SKU, IDs, status and shipping measurements; handle downloaded reports according to your store's policies.

== Changelog ==

= 1.0.0 =
* Initial release: bounded shipping measurement review, variation inheritance, parent navigation, filters and protected per-batch CSV export.
