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 or getting a list of customers for courses, for shows or for product recalls.


  • 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
  • Adaptable
  • Multisite compatible
  • Support for custom statuses

Premium version:

  • Support for Custom Fields
  • Support for User meta
  • Support for WooCommerce Custom Fields (RightPress)
  • Support for WooTours
  • Support for WooEvents
  • Support for YITH WooCommerce Product Add-ons
  • Shortcode by variation ID
  • Datatables functionalities for the shortcode (export PDF, export CSV, print, email customers, search, paging, etc…).
  • Change default sorting column
  • Much more coming soon!

To upgrade the plugin to the premium version, simply click on «upgrade» under the plugin title in the plugin list page, or purchase it here.



  • 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


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)
  • table_title : Add a title that will be added at the top of the list. Uses h3 tags that can be styled via css.
  • 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. Can be a variation ID in the premium version of the plugin.
  • 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).
  • customer_username_link : Add a link to the customer’s profile page (requires customer_username).
  • customer_display_name : The display name of the Customer (if registered).
  • order_status_column : The order status.
  • order_payment : The order payment method.
  • order_shipping : The order shipping method.
  • order_coupon : The coupon(s) used at checkout.
  • order_variations : The variations column. Default: true.
  • 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.
  • order_qty_total_column : The total of products purchased for all customers. This field is added as a column.
  • limit : The amount of orders you want to display.

Premium version

  • custom_fields : A comma separated list of your custom field keys. You can copy the keys that are available in the list in the admin settings.
  • sortable : Activates datatables script and enables sorting by column and is required for all other premium shortcode parameters to work. Default: false.
  • index : Adds an index column to the left of the list. Default: false.
  • export_pdf : Adds button to export the list as PDF. Default: false.
  • export_csv : Adds button to export the list as CSV. Default: false.
  • email_all : Adds button to e-mail all customers with your e-mail client (b.c.c.). Default: false.
  • copy : Adds button to copy table data to clipboard. Default: false.
  • print : Adds button to print the table. Default: false.
  • search : Adds option to search the list. Default: false.
  • paging : Adds paging to list. Default: false.
  • info : Displays additional information such as posts per page. Default: false.
  • scrollx : Enables horizontal scrolling. Default: false.
  • pdf_pagesize : Sets the paper format for the PDF export. Options are LETTER|LEGAL|A3|A4|A5. Default: LETTER.
  • pdf_orientation : Sets the paper orientation for the PDF export. Options are portrait|landscape. Default: portrait.

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_payment="false" order_shipping="false" order_coupon="false" order_variations="true" order_total="false" order_qty="false" order_qty_total="false" order_qty_total_column="false" limit="9999"]

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.

Available hooks and filters

Many hooks and filters. Documentation coming soon.


22 de marzo de 2021
This plugin started out causing some performance issues to product edit/create pages but throughout the updates it has gotten a lot better. Definitely stable enough now for the 5 star review 🙂
11 de enero de 2021
We needed to turn simple products in WooCommerce into a functional event registration for our nonprofit. This plugin allows us to contact customers that paid for that product. Works well along with AutoComplete for virtual products. Simple and elegant,this is just what was needed. Thank you.
10 de noviembre de 2020
This plug-in does everything as advertised. However, it has to do it in the context of a single product. What would be great is to be able to select multiple SKU's and checkbox request inner and outer joins. Likewise, a query that gets all the products for particular email address. We would pay for an upgrade like that.
13 de julio de 2020
We had installed this plugin awhile ago just to see who had purchased a book. Just realized how much more I can do with it when we realized we could use it to export a csv to print label sheets PLUS see which customers used a coupon on the product. This is like a swiss army knife of usefulness! Thanks so much for creating this plugin.
Leer todas las 64 reseñas

Colaboradores y desarrolladores

«Product Customer List for WooCommerce» es un software de código abierto. Las siguientes personas han colaborado con este plugin.


«Product Customer List for WooCommerce» ha sido traducido a 10 idiomas locales. Gracias a los traductores por sus contribuciones.

Traduce «Product Customer List for WooCommerce» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios


  • Updated freemius SDK


  • Fix BCC for emails


  • Fix for email all customers


  • Switched from REST to ajax
  • Fixed partial refunds option
  • Pro: Added User meta columns


  • Fixed broken PDF button
  • Added the IntersectionObserver API and a few extra class and method safety checks in PHP.


  • Updated the Freemius SDK to remove an error that was introduced in WordPress 5.2
  • Added missing PDFmake map file


  • Fix WPML issues


  • Fix quantity count
  • Variation cleanup


  • Fix missing e-mail button and total line
  • Visual fixes


  • Performance improvement: Orders on the backend now load using ajax
  • Fixed issue with multiple products in shortcode


  • Assets reupload


  • Updated Freemius SDK to fix PHP notice.
  • Removed CDN for chinese users
  • Premium: fixed checkout field display issue


  • Feature: Added option to add SKU to PDF titles


  • Fixed issue with Wootours/Wooevents (premium)
  • Fixed issue emailing all customers
  • Security fix


  • Fixed «Undefined variable: split_rows» PHP notice
  • Premium: Added an index column for shortcode (coming soon for admin page)


  • Fix for shortcode on WPML
  • Add support for RightPress
  • Add «split by row» option for RightPress


  • Updated datatables to latest version
  • Simplified the customer email selection
  • Updated .pot file
  • Updated freemius to the latest version
  • Added setting to select the default column to order by (Pro)
  • Added setting to enable/disable state save (Pro).


  • Fixed unicode character related errors.


  • Added customer_display_name in shortcode
  • Added table_title in shortcode
  • Added Customer display name column in admin
  • Updated .pot file
  • Premium: Added support for WooEvents
  • Premium: Fixed issue with custom fields in shortcode
  • Premium: Fixed issue with email_all in shortcode


  • Updated .pot file and re-uploaded french files
  • Freemius GDPR compliance
  • Compatibility with YITH WooCommerce Product Add-ons


  • Premium: Added function wpcl_product_sales($product, $status) to return actual sales.
  • Free: Fixed variable column


  • Fixed other bug with Freemius


  • Fixed bug with Freemius
  • Updated .pot file


  • Fixed issue with billing email in shortcode
  • Premium version: Added support for shortcode by variation ID.


  • Fixed issue with settings page (again)


  • Fixed issue with settings page


  • Added support for Preemius / licensing system


  • Added support for Pro version
  • Added multiple hooks and filters (documentation to come)
  • Added style for shortcode
  • Added variations settings for admin
  • Added variations settings for shortcode
  • Updated shortcode documentation


  • Fixed shameful PHP notice.


  • Fixed duplicate order_status option in shortcode (please use order_status_column to display the order status column.
  • Added a few more shortcode options (please see FAQ on how to use the shortcode).


  • 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