Product Customer List for WooCommerce


A plugin that simply displays a list of customers who bought a specific product at the bottom of the WooCommerce product edit page or as a shortcode. You can also send an email to the list of customers, print the list or export it as a CSV, PDF or Excel file. Requires WooCommerce 2.2+ to be installed and activated.

Great for sending out e-mails to customers for product recalls or for courses.


  • Support for variable products
  • Options page to select which info columns to display
  • Displays customer name, email, phone number, address, order number, order date, shipping method, order total and quantity for each product
  • Shortcode to display orders in the front-end. You can select which information to display using attributes
  • Button to e-mail all customers for a specific product using your favorite e-mail client (b.c.c.)
  • Email selected customers
  • Export the customer list to CSV (great for importing into Mailchimp!)
  • Export the customer list to Excel
  • Export the customer list to PDF (choose your orientation and page size in the settings)
  • Copy the customer list to clipboard
  • Print the list of customers
  • Search any column in the list
  • Sort by any column in the list
  • Drag and drop columns to reorder them
  • Localized and WPML / Polylang ready (.pot file included)
  • Included translations: French, French (France), French (Canada), Spanish, Dutch, Dutch (Netherlands), Dutch (Belgium).
  • All functions are pluggable
  • Performance oriented
  • Responsive
  • Multisite compatible
  • Support for custom statuses

Coming soon:

  • Form to e-mail all customers using WooCommerce e-mail formats and templating

Feel free to contact me for any feature requests.



  • The customer list in the product edit page.
  • The settings page.


  1. Upload the plugin files to the “/wp-content/plugins/wc-product-customer-list” directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress
  3. Edit any WooCommerce product to view the list of customers that bought it.
  4. Make sure that the ‘Product Customer List for WooCommerce’ checkbox is ticked in your screen options.
  5. Access the settings page in WooCommerce / Settings / Products / Product Customer List


Installation Instructions
  1. Upload the plugin files to the “/wp-content/plugins/wc-product-customer-list” directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress
  3. Edit any WooCommerce product to view the list of customers that bought it.
  4. Make sure that the ‘Product Customer List for WooCommerce’ checkbox is ticked in your screen options.
  5. Access the settings page in WooCommerce / Settings / Products / Product Customer List
How do I use the shortcode?

WARNING: The shortcode can display very private information about your customers (if you decide to). Please use with caution.

To display the list in the front end, simply use the following shortcode: [customer_list] along with the following attributes and their “true” or “false” value:

  • product : The ID of the product for which you wish to display the customer list. If you do not put an ID number, it will use the ID of the current product (if used on a product page)
  • order_status : The order status for which the shortcode will display your customers. If you have more than one, seperate them with commas. Options are: wc-completed, wc-processing, wc-on-hold, wc-pending, wc-cancelled, wc-refunded, wc-failed. Default is “wc-completed”.
  • show_titles : Display the titles of each column in the head of the table. Titles cannot be modified at this time.
  • order_number : The ID of the order.
  • order_date : The date of the order.
  • billing_first_name : Billing first name.
  • billing_last_name : Billing last name.
  • billing_company : Billing company.
  • billing_email : Billing e-mail.
  • billing_phone : Billing phone.
  • billing_address_1 : Billing address 1.
  • billing_address_2 : Billing address 2.
  • billing_city : Billing city.
  • billing_state : Billing state.
  • billing_postalcode : Billing postal / Zip code.
  • billing_country : Billing country.
  • shipping_first_name : Shipping first name.
  • shipping_last_name : Shipping last name.
  • shipping_company : Shipping company.
  • shipping_address_1 : Shipping address 1.
  • shipping_address_2 : Shipping address 2.
  • shipping_city : Shipping city.
  • shipping_state : Shipping state.
  • shipping_postalcode : Shipping postal / Zip code.
  • shipping_country : Shipping country.
  • customer_message : Message from the customer.
  • customer_id : The ID of the customer (if registered).
  • customer_username : The user name of the Customer (if registered).
  • order_status : The order status.
  • order_payment : The order payment method.
  • order_shipping : The order shipping method.
  • order_coupon : The coupon(s) used at checkout.
  • order_total : The order total.
  • order_qty : The quantity of products purchased.
  • order_qty_total : The total of products purchased for all customers. This field is added at the bottom of the table.

If you do not use any attributes for the product ID, it will display the customers of the current product (on a product page).

Here is an example containing every attribute of the shortcode, with the default values. Please note that it is not needed to include each attribute, you can simply use the attributes that you wish to modify (replace 999 with your product id):

[customer_list product=”999″ show_titles=”true” order_status=”wc-completed” order_number=”false” order_date=”false” billing_first_name=”true” billing_last_name=”true” billing_company=”false” billing_email=”false” billing_phone=”false” billing_address_1=”false” billing_address_2=”false” billing_city=”false” billing_state=”false” billing_postalcode=”false” billing_country=”false” shipping_first_name=”false” shipping_last_name=”false” shipping_company=”false” shipping_address_1=”false” shipping_address_2=”false” shipping_city=”false” shipping_state=”false” shipping_postalcode=”false” shipping_country=”false” customer_message=”false” customer_id=”false” customer_username=”false” order_status=”false” order_payment=”false” order_shipping=”false” order_coupon=”false” order_total=”false” order_qty=”false”]

Why doesn’t the customer list appear when I edit a product?

Make sure that the ‘Product Customer List for WooCommerce’ checkbox is ticked in your screen options.

Where can I select which columns to display

You can access the settings page in WooCommerce / Settings / Products / Product Customer List

How can I reorder the columns?

You can reorder the columns by dragging them and dropping them in the order you want. The browser will remember your selection. You can press the “Reset column order” button at any time to reset the order to it’s initial state.

What are the available hooks?

There is currently only one hook, that enables you to add content after the “email all customers” button. To use it: add_action( ‘wpcl_after_email_button’ , ‘your_function_here’, 10 , 1 );



I can’t believe that WooCommerce doesn’t include this ability by default. So useful.


I installed this plugin because the reporting on woocommerce is pretty limited and I needed a more comprehensive reporting solution on a per product basis which this is.

The plugin author was really helpful and added extra fields for me in a new update. If I could give 6 stars I would 🙂

Read all 36 reviews

Contributors & Developers

“Product Customer List for WooCommerce” is open source software. The following people have contributed to this plugin.


“Product Customer List for WooCommerce” has been translated into 7 locales. Thank you to the translators for their contributions.

Translate “Product Customer List for WooCommerce” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Returning shortcode output instead of echo (thanks to aerobass)


  • Fixed rogue ” at the end of the shortcode (thanks to aerobass)


  • Added shortcode attributes for all columns


  • Fixed compatibility bug in PHP 7.1 (Thanks to mmagnani)


  • Added username column


  • Fixed partially refunded orders


  • Added billing company column
  • Added shipping company column
  • Added coupons used


  • Added compatibility with Avada theme and The events calendar plugin
  • Changed payment output to title instead of slug
  • Added option to hide partially refunded orders


  • Fixed datatables related javascript errors
  • Added missing translation in settings page


  • Fixed bug where some variations wouldn’t display (again!)


  • Fixed bug where some variations wouldn’t display
  • Added row selection for emails
  • Added shipping method column
  • Updated screenshots


  • Added dropdown to select list length


  • Added hook “wpcl_after_email_button” to display content after the email button.
  • Fixed variation display.


  • Fixed issue where the email list would be incomplete.


  • Added support for custom statuses


  • Fixed deprecation notices and bugs in variable products


  • Script optimizations


  • Fixed settings text mismatch


  • Fixed bug where current date would be show instead of the order date
  • Added plugin action links
  • Added order total column
  • Added translations for order statuses


  • WooCommerce 3.0+ compatibility
  • Script optimizations (thanks to Alexandre Simard)
  • Code optimization
  • Improved multisite compatibility
  • Updated .pot file


  • Added Customer ID column
  • Fixed wpdb notice (thanks to Michal Bluma)


  • Fixed multisite compatibility


  • Fixed compatibility issue with plugin “WooCommerce Amazon S3 storage”


  • Added multisite compatibility


  • Added the option for city in the settings


  • Fixed bug where quantity would not show up in shortcode


  • Added compatibility with WPML


  • Fixed PDF orientation and size.
  • Added payment method column and option.


  • Added settings for PDF orientation and size.


  • Fixed bug where refunds would appear in the list.
  • Removed old unused code.


  • Fixed trailing slash in scripts and stylesheet urls which could prevent them to load on certain servers.


  • Fixed bug where featured image uploader wouldn’t work when activated.
  • Updated PDFMake script to latest version (local)


  • Added column reordering and state save
  • Fixed javascript localization handling (wp_localize_script)


  • Changed print and export system to reflect filters and order
  • Added export to excel
  • Added export to PDF
  • Added copy to clipboard


  • Added all missing order statuses in settings


  • Fixed bug where shipping postal code wouldn’t be displayed in CSV export


  • Fixed bug where two extra columns would appear while printing
  • Fixed bug where there would be an error if you delete a variation after it is purchased


  • Added Portuguese (Brazil) translation (thanks to Marcello Ruoppolo)
  • Fixed alignment shortcode bug and added default product as current product


  • Added support for variable products (thanks to Alexandre Simard)
  • Bug fixes & optimisation


  • Fixed Urls for wordpress subdirectory installs


  • Fixed issue where columns would shift when printing


  • Added front-end shortcode
  • Fixed default order type in settings


  • Added date column
  • Added compatibility with WordPress 4.5
  • Fixed some bugs


  • Added settings tab section
  • Added support for horizontal scrolling
  • Loaded datatables CSS and JS via CDN


  • Fixed undefined object error when there are no customers
  • Fixed text domain to match plugin slug
  • Added Dutch (Belgium) translation


  • Fixed issue where the plugin would prevent WooCommerce from displaying or saving product attributes (price & stock)


  • Added pagination
  • Added search
  • Added sortable columns
  • Added Dutch (Netherlands) translation (thanks to pieterclaesen)
  • Added row actions
  • Fixed empty table notice
  • Cleaned code


  • Fixed other “cannot send session cache limiter” warning


  • Fixed bug where variations wouldn’t be added to the quantity column sum


  • Fixed “session_start(): Cannot send session cookie” warning
  • Fixed “session_start(): Cannot send session cache limiter” warning


  • Fixed quantity bug


  • Added “export to CSV” button
  • Added print button


  • Improved table styling
  • Added Spanish translation
  • Optimized code: now even lighter files!


  • Added quantity column
  • Fixed and optimized WooCommerce plugin check
  • Improved code readability
  • Updated translations


  • Fixed email button


  • Updated deprecated WooCommerce order statuses
  • Added pluggable functions
  • Optimized code


  • First stable version