Skip to content
  • IT
  • Web
  • IT
  • Web
  • About
  • Contact
  • About
  • Contact

WooCommerce CLI Customer Export

  • September 10, 2026

If you’ve ever tried to pull a full customer list out of a WooCommerce store with more than a few thousand orders, you know the pain. The built-in tools don’t give you spend and order counts per customer, most export plugins choke on big stores, and anything that tries to do it in one request hits the PHP time limit and dies halfway through.

I needed exactly this for a client site with tens of thousands of orders, so I built a small plugin to do it properly. It’s free, no Pro tier, etc.

Download Here

What it exports

One row per customer, covering both registered accounts and guest checkouts:

First name, last name and email. Total spend (order totals minus refunds). Number of orders, plus first and last order date. Billing address and shipping address — each as a single readable line, and also broken out into separate columns (address 1, address 2, city, state, postcode, country, phone) so it drops straight into a mailing tool or CRM.

Guests are grouped by billing email, registered customers by their account, so someone who checked out three times as a guest shows up once with three orders. Name and address come from their most recent order.

Why it doesn’t time out

Instead of trying to crunch everything in one go, the export runs as a resumable job. It works through orders in batches — 250 at a time by default — and keeps its place between batches. The admin screen fires one short request per batch, so no single request ever runs long enough to trip a server limit. If a request fails it retries on its own, and if you close the tab you can come back and hit Resume.

It works with both the classic order storage and WooCommerce’s newer High-Performance Order Storage.

How to use it — admin screen

Install the zip through Plugins > Add New > Upload Plugin and activate it. Then go to WooCommerce > Customer Export.

Tick which order statuses should count toward spend and order count (completed and processing are ticked by default). Decide whether to include registered customers who’ve never placed a qualifying order — they’ll show with zero spend. Then click Start export and leave the tab open. You’ll see a progress bar tick through orders, then registered customers, then the CSV write. When it’s done, click Download CSV.

If your host has an aggressive PHP time limit and a batch fails, drop the “Orders per batch” number and click Resume. It picks up where it left off.

How to use it — command line

For really big stores, or if you want to schedule it, WP-CLI is the better route:

wp wcce export --file=/path/to/customers.csv

Options:

--statuses=completed,processing,on-hold   
which statuses to count

--batch=1000                              
orders per batch

--skip-users                              
leave out customers with no orders

--no-progress                             
plain output, good for cron

There’s also wp wcce status to check on a job and wp wcce reset to clear one out.

A couple of things worth knowing

The generated file is stored in a protected folder under uploads and only served to logged-in users with the Manage WooCommerce capability. Cell values that look like spreadsheet formulas are neutralised, so a customer who typed “=1+1” as their company name can’t do anything funny when you open the file in Excel.

If you want to change what counts as spend, which roles count as customers, or add columns, there are filters for all of it — details in the readme.

in·spired

/inˈspī(ə)rd/

Adjective

  1. of extraordinary quality, as if arising from some external creative impulse.


IT Services

  • All IT Services
  • Networking & SDN Solutions
  • All IT Services
  • Networking & SDN Solutions

Web Services

  • All Web Services
  • Support
  • Web Design
  • WordPress
  • Hosting
  • Portfolio
  • All Web Services
  • Support
  • Web Design
  • WordPress
  • Hosting
  • Portfolio

About

  • About Inspired
  • Blog
  • About Inspired
  • Blog

Contact Us

[email protected]

604 288 7000

© Inspired Networks Inc.

Privacy Policy & Terms of Service

  • Home
  • IT
  • Web
  • About
  • Portfolio
  • Contact
  • Home
  • IT
  • Web
  • About
  • Portfolio
  • Contact