RawType Order Exporter — Spreadsheet & CSV for WooCommerce
Changelog
1.0.7
Fix: XLSX export failed in production with “Unable to create the export file.” The Strauss build did not rewrite vendor namespace references in plugin source, so PhpSpreadsheet class checks always returned false against the prefixed RawTypeOEVendor namespace. Enable Strauss update_call_sites so call sites in includes/ and admin/ are updated at build time.
Fix: Repair Strauss-prefixed vendor-prefixed/ references where the rewriter collapsed self-named packages (e.g. ZipStreamZipStream) to a single segment. Without the trailing class name the return type resolved relative to the current namespace and XLSX writes failed at runtime with TypeError.
Performance: Custom-fields scanner now runs a single grouped scan with COUNT(*) instead of COUNT(DISTINCT) plus a separate sample query. On large stores (100k+ orders) the previous shape blocked the REST request long enough for the browser to give up; the new query stays on the meta_key index and returns in well under a second.
1.0.6
Dev: Ship the React/JSX sources (src/admin/) and build tooling (webpack.config.js, package.json) inside the plugin ZIP so the bundled admin JavaScript is fully reproducible from public source, per WordPress.org guideline #4.
Dev: Update Plugin URI to https://rawtype.dev/es/rawtype-order-exporter-woocommerce (now publicly resolvable).
Dev: Drop the vendored PhpSpreadsheet documentation file whose name contained a space (cross-filesystem compatibility).
1.0.5
Dev: Ship a phpcs.xml.dist at the plugin root so IDE linters pick up the correct text domain (rawtype-order-exporter-woocommerce) and stop reporting spurious TextDomainMismatch errors.
1.0.4
Security: harden Content-Disposition header (RFC 6266) and strip CR/LF in download responses to prevent header injection.
Security: drain all output buffers before streaming downloads so binary files cannot be corrupted by stale buffers.
Security: reject null bytes and leading ../ segments in download path resolution.
Security: neutralize spreadsheet formula injection in CSV and XLSX exports — cells starting with =, @, tab, or non-numeric +/- are written as literal text, while negative prices stay numeric.
Fix: order/product/stock status codes are now translated in exported files (matching the preview) instead of leaking raw slugs like wc-processing.
Fix: customer export resolves the most recent order via a single batched query (was one query per customer) and skips the lookup entirely when last-order columns are not selected.
Fix: order pagination now sorts by ID instead of date_created, so chunks remain stable when multiple orders share the same timestamp (no more duplicated/missing rows).
1.0.3
Fix: Clean release packaging for WordPress.org by excluding development-only files from the distributable plugin.
Fix: Harden custom field scanner queries and customer metric filters for better Plugin Check compatibility.
Fix: Improve test/bootstrap stubs used during development to avoid false positives in preflight checks.
1.0.2
Fix: Resolve all Plugin Check warnings — proper SQL prepare() usage and phpcs annotations.
Fix: Include composer.json in build ZIP to satisfy Plugin Check vendor directory requirement.
1.0.1
Fix: Minor improvements and compatibility checks.
1.0.0
Initial release of RawType Order Exporter — Spreadsheet & CSV for WooCommerce.
Visual query builder for orders, products and customers.
Excel (.xlsx) and CSV formats.
Smart filters: date range, order status, categories, customer roles.