WooCommerce Admin Orders List

WooCommerce Admin Orders List

Customize WooCommerce admin orders list: add custom columns; add multiple status filtering

Description

WooCommerce Admin Orders List module allows you to customize WooCommerce admin order list (i.e. list at “your site admin dashboard > WooCommerce > Orders”). You can:

  • add custom columns,
  • customize statuses menu,
  • change columns order.

Admin Orders List – Custom Columns

This section lets you add custom columns to WooCommerce orders list.

WooCommerce Admin Orders List - Admin Settings - Custom Columns

Enable section
Enables "Custom Columns" section.
Default: no
Billing Country
Adds billing country column and filtering.
Default: no
Currency Code
Adds currency code column and filtering.
Default: no
Custom Columns Total Number
Set the number of additional custom columns here.
Default: 1
Custom Column #X – Enabled
Enable/disable custom column.
Default: no
Custom Column #X – Label
Custom column’s title.
Default: None
Custom Column #X – Value
Custom column’s value. You can use shortcodes and/or HTML here.
Default: None
Custom Column #X – Sortable
Set if you want column to be sortable. Possible values: No; By meta (as text); By meta (as numbers).
Default: No
Custom Column #X – Key (if sortable)
If column is set to be sortable, set sorting key here.
Default: None
Custom Columns Usage Example #1

With Booster you can add custom columns to admin order list. Best way to add columns is to use Booster’s orders shortcodes. For example you can add order’s items total weight to admin order list with [wcj_order_items_total_weight] shortcode.

woocommerce-orders-admin-orders-list-custom-columns-admin-settings

Admin Orders List:

woocommerce-orders-admin-orders-list-custom-columns-admin-orders-list

Custom Columns Usage Example #2

If you want to add order’s items info to the list (like it was in WooCommerce before version 3.0.0), you can add something like this to custom column’s value:

<details>
<summary><em>Show items ([wcj_order_items_total_number] / [wcj_order_items_total_quantity])</em></summary>
[wcj_order_items field="_qty_x_name" sep="<br>"]
</details>
Custom Columns Usage Example #3

Let’s say, you want to display order’s payment method in custom column, and also make it sortable. To output payment method you can use Booster’s [wcj_order_payment_method] shortcode in “Value” field. To make it sortable, you need to set _payment_method_title in “Key (if sortable)” field.

Custom Columns Usage Example #4

Let’s say, you want to display Booster’s products input fields in orders list, and also make it sortable. If you want to to display each product input field in its own column, you can use [wcj_order_items_meta meta_key="_wcj_product_input_fields_global_1"], [wcj_order_items_meta meta_key="_wcj_product_input_fields_local_1"] etc. shortcodes in “Value” field. Making it sortable is more complicated, as sorting is done by order’s meta fields, but product input fields are stored as order’s item meta and not as order’s meta fields. So you need to create new order item meta fields for that. You can use woocommerce_checkout_order_processed filter, so each time order is created, product input fields are automatically copied to order’s meta. Try adding this to your (child) theme’s functions.php file:

add_action( 'woocommerce_checkout_order_processed', 'copy_product_input_fields_to_order_meta', PHP_INT_MAX );
function copy_product_input_fields_to_order_meta( $order_id ) {
	$fields_to_update = array(
		'_wcj_product_input_fields_global_1',
		'_wcj_product_input_fields_local_1',
	);
	foreach ( $fields_to_update as $field_to_update ) {
		update_post_meta(
			$order_id,
			$field_to_update,
			do_shortcode( '[wcj_order_items_meta order_id="' . $order_id . '" meta_key="' . $field_to_update . '"]' )
		);
	}
}

Now you can use _wcj_product_input_fields_global_1 or _wcj_product_input_fields_local_1 in “Key (if sortable)” options.

Admin Orders List – Multiple Status

In this section you add extend standard order by status selection in admin order list.

WooCommerce Admin Orders List - Admin Settings - Multiple Status

Enable section
Enables multiple status section.
Default: no
Multiple Status Filtering
Possible values: Do not add; Add as multiple select; Add as checkboxes.
Default: Do not add
Hide Default Statuses Menu
Default: no
Add "Not Completed" Status Link to Default Statuses Menu
Default: no

You can add checkboxes or multiple select list, so admin can select multiple order status. If you need to style the checkboxes with CSS, use #wcj_admin_filter_shop_order_statuses.

woocommerce-orders-admin-orders-list-multiple-status-admin-orders-list

There is also option to add all not completed orders link.

woocommerce-orders-admin-orders-list-multiple-status-admin-orders-list-all-not-completed-orders-link

Admin Orders List – Columns Order

If you wish to change the columns order in admin order list, you can do so with this section. Just enter columns in required order, one column ID per line.

WooCommerce Admin Orders List - Admin Settings - Columns Order

Enable section
Enables columns order section.
Default: no
Columns Order
Default:
cb
order_status
order_title
order_items
billing_address
shipping_address
customer_message
order_notes
order_date
order_total
order_actions
Accessible through:
  • WooCommerce > Settings > Booster > Shipping & Orders > Admin Orders List
Tested on WooCommerce 3.8.0 and WordPress 5.3
Plugin can be downloaded here. If there are any locked fields in the module, you will need to get Booster Plus to unlock them.

Leave a Reply

Comments

31 Comments

  1. Lisa Gray November 16, 2019 at 9:32 pm #

    Thank you. I’ve tried these.

    The orders list adds the column but does not pull in the state. Could I email you screenshots of my settings? I can’t paste screenshots in here.

    Thanks,
    Lisa

    Reply to thread

    Avatar
    • RokasJ November 18, 2019 at 10:13 am #

      Hi Lisa.

      Sure, you can send your screenshots to support@booster.io. Our ticketing system currently blocks all individual attachments over 1MB so please make sure that the files are smaller.

      Best regards,
      Rokas – Support Team

      Avatar
  2. Lisa Gray November 15, 2019 at 11:09 pm #

    I’m trying to figure out how to sort by shipping state only — not the full address. I’ve tried several things and haven’t be successful. What shortcode would I use for this in this module?

    Reply to thread

    Avatar
    • RokasJ November 16, 2019 at 6:43 pm #

      Hi Lisa,

      Please try creating a custom column with a [wcj_order_checkout_field field_id="shipping_state"] column or alternatively try with _shipping_state order meta key.

      Best regards,
      Rokas – Support Team

      Avatar
  3. Iwan October 26, 2019 at 6:31 pm #

    Hello!

    Is there a shortcode that adds the purchased product sku’s in the “Woocommerce > Orders” page?
    In my Orders page I need a sorting function based on SKU (or product ID).

    Thanks in advance πŸ™‚

    Reply to thread

    Avatar
    • RokasJ November 9, 2019 at 5:36 pm #

      Hi Iwan,

      Unfortunately current SKU shortcode requires product context/scope and there is no shortcode for orders yet but we have added it to our todo list.

      Best regards,
      Rokas – Support Team

      Avatar
    • Uzair Salman November 10, 2019 at 9:33 pm #

      @RokasJ

      Please accept my comment and answer my query too. Thank you.

      Avatar
  4. DiaCreative September 27, 2019 at 7:08 pm #

    Is there a shortcode I can use to pull up Orders by Product on a Page? And then customize the columns shown here?

    Reply to thread

    Avatar
    • RokasJ September 28, 2019 at 10:58 am #

      Hi,

      There is [wcj_order_items_meta] shortcode that allows parsing through every product and getting its meta data which can be used to show order products. It defaults to showing product titles so not giving meta_key argument – [wcj_order_items sep=""] – will show product titles.

      Best regards,
      Rokas – Support Team

      Avatar
  5. Terrick June 18, 2019 at 4:13 am #

    Thank you for creating this excellent plugin.

    I’m trying to add a custom column to the order list by showing the checkout uploaded file here.
    What is the “Value” and “Key” I should fill up?

    Hope to receive your reply.

    Many thanks!

    Reply to thread

    Avatar
  6. Peter Fillaus January 6, 2019 at 3:28 pm #

    Hi Tom!

    I just saw your new example “Custom Columns Usage Example #4”.
    Is it maybe possible to do the same with user data?
    As already stated before, I’ve added a column with a shortcode for the nickname which works fine, but sorting only shows an empty order list.

    Thanks for your help!

    Reply to thread

    Avatar
  7. Nathathai December 1, 2018 at 11:58 am #

    Is it possible to add a custom column showing Confirm Payment Slip image on the order admin page? How to do that? This Confirm Payment slip is run by another plugin name Seed Confirm Pro and its short code is seed-confirm-image

    Reply to thread

    Avatar
    • RokasJ December 1, 2018 at 8:28 pm #

      Hi Nathathai,

      If the shortcode is not working then you would have to learn what the meta key is used to store this information in the mentioned plugin and access it using [wcj_order_meta] (https://booster.io/shortcodes/wcj_order_meta/) shortcode.

      Best regards,
      Rokas – Support Team

      Avatar
  8. Lisa November 28, 2018 at 9:52 pm #

    I would like the Name of the items ordered for each order to show up on my orders admin page. How would I do that? What is the shortcode?

    Reply to thread

    Avatar
    • RokasJ November 29, 2018 at 3:08 pm #

      Hi Lisa,

      THis shortcode will display all items in the order: [wcj_order_items field=”_qty_x_name” sep=”
      ”].

      Best regards,
      Rokas – Support Team

      Avatar
    • Lisa November 29, 2018 at 9:12 pm #

      I tried adding that. The column shows up but it is blank. No items are showing up. I am not sure what I am doing wrong.

      Avatar
    • RokasJ November 30, 2018 at 11:41 am #

      Hi Lisa,

      It is probably an issue with some parts of the shortcode missing when I posted it here in the comments. If you scroll a little bit up, under the “Custom Columns Usage Example #2” you will find the correct shortocode. After pasting it to your module settings make sure that the br tag is not missing.

      Best regards,
      Rokas – Support Team

      Avatar
    • Lisa November 30, 2018 at 10:49 pm #

      Great. Thanks. That worked! Having to click on each order to see what they bought was inconvenient. I successfully added the customer notes column. I would also like to display MY PRIVATE NOTES that I add to each order so I can see it at a glance. Is that possible?

      Avatar
    • RokasJ December 1, 2018 at 8:44 pm #

      Hi Lisa,

      Could you try [wcj_order_notes] or [wcj_order_customer_note]?

      Best regards,
      Rokas – Support Team

      Avatar
    • Lisa H December 2, 2018 at 1:49 am #

      I have the customer notes column but I want to also show a list of my private order notes. I tried [wcj_order_notes] and that didn’t work. The column is blank.

      Avatar
    • RokasJ December 2, 2018 at 8:50 pm #

      Hi Lisa,

      Could you also try [wcj_order_notes type="all_notes"]?

      Best regards,
      Rokas – Support Team

      Avatar
  9. Novel November 28, 2018 at 10:44 am #

    Hi, what is value and key to add City as a new custom order column in order admin page?

    Reply to thread

    Avatar
    • RokasJ November 28, 2018 at 4:25 pm #

      Hi Novel,

      It should be [wcj_order_checkout_field field_id="shipping_city"] for value, and _shipping_city for key.

      Best regards,
      Rokas – Support Team

      Avatar
  10. Lasse October 5, 2018 at 12:51 pm #

    Hi there,

    I am trying to add a new “custom field” that lets us internally check “yes/no” depending on whether the customer has to be followed-up for payment or not. Basically a new column saying “Awaiting Payment” in which we can check yes or no somewhere in the order. Is this something we could implement with this plugin? I cant seem to find a way to make it work. Thanks for your help, Lasse

    Reply to thread

    Avatar
    • RokasJ October 5, 2018 at 4:13 pm #

      Hi Lasse,

      Unfortunately that’s not possible but we have added it to our todo list. You could use order statuses (and custom order statuses) for this at the moment.

      Best regards,
      Rokas – Support Team

      Avatar
  11. Peter January 7, 2018 at 5:29 pm #

    Hi!

    I’m trying to get a sortable column with the customers nickname.
    I’ve added a column with a shortcode for the nickname which works fine, but sorting only shows an empty order list.
    Is there a quick way to do this the correct way?

    Reply to thread

    Avatar
    • Booster Support Team January 10, 2018 at 5:57 pm #

      Hi Peter,

      Unfortunately you can sort only by order meta, and customer’s nickname is not saved as order meta. One suggestion would be to sort by customer’s ID – in this case you need to enter _customer_user in “Key (if sortable)”. Another option – sort by billing name – in this case you need to enter _billing_first_name there.

      Please let me know if that’s good enough. If not – I will try to come up with another solution.

      Best regards,
      Tom

      Booster Support Team
    • Peter Fillaus July 20, 2018 at 9:25 am #

      Hi Tom!
      Thank you for your help!
      Unfortunately we need the nickname sortable as each customer hast a specific customer ID (which is not the user ID).
      Do you have any other suggestions?

      Thanks a lot,
      Peter

      Avatar
  12. zimart_snk January 5, 2018 at 3:46 pm #

    how it’s works ?
    I need add custom fields in column… ..

    Reply to thread

    Avatar
    • zimart_snk January 5, 2018 at 3:52 pm #

      ok…
      key : [wcj_order_custom_field name="xxx"]

      πŸ™‚

      Avatar