{"id":393996,"date":"2026-10-28T00:47:02","date_gmt":"2026-10-28T00:47:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/hdwebmobile-order-export\/"},"modified":"2026-10-28T00:46:34","modified_gmt":"2026-10-28T00:46:34","slug":"hdwebmobile-order-export","status":"publish","type":"plugin","link":"https:\/\/su.wordpress.org\/plugins\/hdwebmobile-order-export\/","author":9757813,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"HDWebmobile Order Export","header_author":"htrxuan - Han Tran","header_description":"Export WooCommerce orders to CSV, filtered by date range and status. Every query goes through wc_get_orders() (never raw SQL) and CSV output extends WooCommerce's own WC_CSV_Exporter, so formula-injection-safe escaping comes from WooCommerce core itself.","assets_banners_color":"426e5b","last_updated":"2026-10-28 00:46:34","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/htrxuan\/20","header_plugin_uri":"https:\/\/hdwebmobile.com\/plugins\/hdwebmobile-order-export\/","header_author_uri":"https:\/\/hdwebmobile.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":52,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"htrxuan","date":"2026-10-28 00:46:34","revision":3769724}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3769723,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3769723,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3769723,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3769723,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3769723,"resolution":"1","location":"assets","locale":"","width":1600,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3769723,"resolution":"2","location":"assets","locale":"","width":1600,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3769723,"resolution":"3","location":"assets","locale":"","width":1600,"height":1000}},"screenshots":{"1":"The Order Export tab under WooCommerce &gt; HDWebmobile.","2":"The date-range and status filters.","3":"A downloaded export opened in a spreadsheet."}},"plugin_section":[],"plugin_tags":[13410,1859,154364,16281,286],"plugin_category":[45,59],"plugin_contributors":[254181],"plugin_business_model":[],"class_list":["post-393996","plugin","type-plugin","status-publish","hentry","plugin_tags-csv-export","plugin_tags-export","plugin_tags-order-export","plugin_tags-orders","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-utilities-and-tools","plugin_contributors-htrxuan","plugin_committers-htrxuan"],"banners":{"banner":"https:\/\/ps.w.org\/hdwebmobile-order-export\/assets\/banner-772x250.png?rev=3769723","banner_2x":"https:\/\/ps.w.org\/hdwebmobile-order-export\/assets\/banner-1544x500.png?rev=3769723","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hdwebmobile-order-export\/assets\/icon-128x128.png?rev=3769723","icon_2x":"https:\/\/ps.w.org\/hdwebmobile-order-export\/assets\/icon-256x256.png?rev=3769723","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/hdwebmobile-order-export\/assets\/screenshot-1.png?rev=3769723","caption":"The Order Export tab under WooCommerce &gt; HDWebmobile."},{"src":"https:\/\/ps.w.org\/hdwebmobile-order-export\/assets\/screenshot-2.png?rev=3769723","caption":"The date-range and status filters."},{"src":"https:\/\/ps.w.org\/hdwebmobile-order-export\/assets\/screenshot-3.png?rev=3769723","caption":"A downloaded export opened in a spreadsheet."}],"raw_content":"<!--section=description-->\n<p>HDWebmobile Order Export adds a simple \"Order Export\" screen where you pick a date range and one or more order statuses, then download a CSV with order ID, customer details, addresses, items, totals, and coupon codes -- ready for accounting, shipping, or any spreadsheet workflow.<\/p>\n\n<p>Two vulnerability classes are common in order-export tools: SQL injection, caused by a request parameter (such as a sort direction) concatenated straight into a raw query, and CSV\/formula injection, where an exported cell value starting with <code>=<\/code>, <code>+<\/code>, <code>-<\/code>, or <code>@<\/code> executes as a formula when the file is opened in Excel or Sheets. This plugin closes both by construction rather than by bolted-on sanitization: every order is fetched through WooCommerce's own <code>wc_get_orders()<\/code> (never a raw SQL string), and every CSV cell is written through WooCommerce core's own <code>WC_CSV_Exporter<\/code> base class, which already implements the OWASP-recommended formula-injection escaping -- this plugin reuses WooCommerce's own trusted, already-audited code instead of writing a new CSV writer from scratch.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>Filter by date range and\/or one or more order statuses before exporting<\/li>\n<li>One-click CSV download -- no file is ever written to the server, the export streams directly to your browser<\/li>\n<li>Every order fetched through WooCommerce's own order-query API -- no raw SQL anywhere in this plugin<\/li>\n<li>Every exported cell escaped through WooCommerce core's own CSV exporter class -- closes the formula-injection class by construction<\/li>\n<li>Order status filter is validated against WooCommerce's own registered statuses -- no request parameter ever reaches a query unvalidated<\/li>\n<li>Zero configuration -- no settings to save, nothing persisted in the database<\/li>\n<\/ul>\n\n<h4>Columns included<\/h4>\n\n<p>Order ID, Order Number, Date, Status, Customer Name, Email, Phone, Billing Address, Shipping Address, Payment Method, Items, Item Count, Subtotal, Shipping, Tax, Discount, Order Total, Coupon(s).<\/p>\n\n<h4>Limitations (please read before installing)<\/h4>\n\n<ul>\n<li>Fixed column set in this version -- no column picker<\/li>\n<li>Single-request export, not a background\/batch job -- suited to date-range-scoped exports rather than exporting an entire multi-year order history in one click<\/li>\n<li>CSV format only, no XLSX<\/li>\n<\/ul>\n\n<h4>Enjoying this plugin?<\/h4>\n\n<p>If it helps your site, please consider <a href=\"https:\/\/wordpress.org\/support\/plugin\/hdwebmobile-order-export\/reviews\/#new-post\">leaving an honest review on WordPress.org<\/a> -- it helps other WordPress users find it. Found a problem or have an idea? Please <a href=\"https:\/\/wordpress.org\/support\/plugin\/hdwebmobile-order-export\/\">open a support topic<\/a> first so it can be fixed.<\/p>\n\n<h3>How to Use<\/h3>\n\n<h4>1. Open the Order Export tab<\/h4>\n\n<p>WooCommerce &gt; HDWebmobile &gt; Order Export (Screenshot 1).<\/p>\n\n<h4>2. Choose your filters<\/h4>\n\n<p>Pick a from\/to date (leave either blank for an open-ended range) and check any order statuses you want included (Screenshot 2). Leave every status unchecked to export all of them.<\/p>\n\n<h4>3. Download<\/h4>\n\n<p>Click \"Download CSV\" -- the file downloads immediately, nothing is saved on the server (Screenshot 3).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/hdwebmobile-order-export<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress. WooCommerce must already be installed and active.<\/li>\n<li>Go to WooCommerce &gt; HDWebmobile &gt; Order Export -- no configuration needed.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: date-range and status-filtered CSV export, built on WooCommerce's own order-query and CSV-exporter classes, zero configuration.<\/li>\n<\/ul>","raw_excerpt":"Export WooCommerce orders to CSV, filtered by date range and status -- built entirely on WooCommerce's own query and export classes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/393996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=393996"}],"author":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/htrxuan"}],"wp:attachment":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=393996"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=393996"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=393996"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=393996"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=393996"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=393996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}