Order Tags

Quick start guide

↑ Back to top
  • Install the Order Tags for WooCommerce extension
  • Go to WooCommerce > Order Tags from your dashboard
  • Create your first order tag
  • Click into the order tag you just created
  • Populate colors and any specific rules required which assign the order tag
  • Save changes, this order tag will now be automatically assigned to any future orders matching the rules you defined
  • You can also now apply the order tag manually when adding/editing an order

Installation and updates

↑ Back to top

Installing Order Tags for WooCommerce

↑ Back to top
  1. From your site’s WP Admin dashboard, go to WooCommerce > Extensions > My Subscriptions.
  2. Find Order Tags for WooCommerce under Available to use.
  3. Click the Install button.
  4. The extension or will install automatically

Please see this documentation for more options on how to install Order Tags for WooCommerce

Updates

↑ Back to top

As a best practice, we recommend always reading the changelog before updating. You should also test updates in a staging environment before your live site if you can!

Please see this documentation to get more information on best practices for updating Order Tags for WooCommerce.

Dashboard

↑ Back to top

Introduction

↑ Back to top

To access the Order Tags dashboard go to WooCommerce > Order Tags.

Add order tags

↑ Back to top

To add an order tag from the dashboard:

  • populate the inputs on the left side of the screen
  • and click the add new order tag button
Creating an order tag via the dashboard
  • Name
    • Name of the order tag which will be displayed.
  • Parent order tag
  • Description
    • The description entered will be displayed when hovering over the order tag on an order.

Edit order tags

↑ Back to top

Once you have created an order tag, it will be added to the dashboard in the table list.

Click on the name of the order tag you wish to edit to reveal the order tag options, such as name, slug, assignment options.

Managing order tags via the dashboard

General options

↑ Back to top

General options are populated during the creation of the tag but can be edited if required.

Editing general options on an order tag
  • Name
    • Name of the order tag which will be displayed.
  • Slug
    • A unique reference used for the order tag internally. By default, this should be left as the default. If you have a specific reason to change the slug you can.
  • Parent order tag
  • Description
    • The description entered will be displayed upon hovering over the order tag on an order.
  • Color background
    • Sets the background color of the tag, if empty defaults to #000000.
  • Color text
    • Sets the text color of the tag, if empty defaults to #ffffff.

Assignment options

↑ Back to top

Orders can be assigned automatically and/or manually.

Automatically assigning Order Tags

↑ Back to top

“Set on” conditions

When editing an order tag you can apply one or more “set on” automatic assignment conditions.

Configuring “set on” assignment conditions
  • On order placed
    • Sets the tag when an order is placed via checkout or adding an order via dashboard. Some payment methods may also update the order after it has been placed e.g. to change order status once payment confirmed.
  • On order update
    • Sets the tag when an order is updated. If a tag is attempted to be removed manually from an order this may cause it to be restored automatically upon update if the “Set If” conditions are met.
  • On order subscription renewal
    • Sets the tag when a subscription renewal order gets created. Requires WooCommerce Subscriptions, this option is only visible when the WooCommerce Subscriptions extension is active.

“Set if” conditions

Once you’ve set some “set on” conditions, you then need to set some “set if” assignment conditions, if the order matches these conditions the order tag will be automatically assigned upon the “set on” conditions.

Configuring “set if” assignment conditions
  • Coupon
    • Sets the tag if the order used coupon(s).
  • Coupon (advanced)
    • Sets the tag if the order used coupon(s), with more granular control over the coupon code conditions.
  • Customer
    • Sets the tag if the order is by a specific customer(s). By default customers are shown for selection here if they have the “customer” user role. Use the wcot_order_tags_customer_roles filter hook to include customers with custom roles.
  • Customer order count
    • Sets the tag based on the amount of orders the customer has placed including the current order. To ensure accuracy, it is recommended this is only set on the order placed action. The customer order count may increase by the time the order is updated.
  • Customer role
    • Sets the tag if the order is by a customer with a specific role(s).
  • Item count
    • Sets the tag based on the amount of items within the order, including multiple quantities of the same item.
  • Item meta data
    • Sets the tag if the order includes an item which has specific meta data(s).
    • Used for setting tags based on order item meta, e.g. meta added by editing an item in an order.
  • Meta data
    • Sets the tag if the order has specific meta data(s). See the meta data reference section in this documentation for further details.
    • Used for setting tags based on order meta, e.g. shipping postcode.
  • Order status
    • Sets the tag if the order has a specific order status(es). It is recommended this is used alongside other “Set If” conditions than individually.
  • Order total
    • Sets the tag based on the order total.
  • Payment method
    • Sets the tag based on the payment method(s) used.
  • Product
    • Sets the tag if the order contains a specific product(s).
  • Product category
    • Sets the tag if the order contains a product from a specific category(s).
  • Product meta data
    • Sets the tag if the order contains a product which has specific meta data(s). See the meta data reference section in this documentation for further details.
    • Used for setting tags based on product meta, e.g. weight.
  • Product tag
    • Sets the tag if the order contains a product with a specific tag(s).
  • Shipping method
    • Sets the tag based on the shipping method(s) used.
  • Shipping method instance
    • Sets the tag based on the shipping method instance(s) used.
  • Shipping zone
    • Sets the tag based on the shipping zone(s) used. Shipping zone(s) determined from the order’s shipping method instance when order placed/updated.
Operators

Some of the “set if” conditions allow you to specify an operator and a value, these are used where you want to perform a calculation or check the value contents, here is a list of what each operator does:

OperatorDescription
=Equals the value
!=Does not equal the value
>=Greater than or equals the value
>Greater than the value
<=Less than or equals the value
<Less than the value
containsContains the value
not_containsDoes not contain the value
starts_withStarts with the value
ends_withEnds with the value

“Set if” mode

  • All
    • If set to all then if all of the “Set If” conditions enabled are met it sets the tag.
  • Any
    • If set to any then if any of the “Set If” conditions enabled are met it sets the tag.

Manual assignment

↑ Back to top

To manually assign or remove tags on an order there are two options:

  • When editing an order you can manually set/remove any order tag by using the order tags meta box*
  • On the orders list you can select orders and use bulk actions to set/remove a specific order tag

*If you have an automatic assignment rule which is applied on order update, that rule may override the manual assignment you are attempting to apply.

Manually assigning a tag to an order
Setting an order tag via bulk actions on the orders list

Order management

↑ Back to top

Orders list

↑ Back to top

From the orders list you can see the tags on each order. You can also filter the list by a specific order tag/no order tag, and run bulk actions.

Order list row showing order tags
Filtering orders list by a specific order tag
Setting an order tag via bulk actions on the orders list

Order details

↑ Back to top

When viewing an individual order the order tags are shown in the general section.

Order details showing order tags

Order tags hierarchy

↑ Back to top

Order tags can be set hierarchically. When adding/editing an order tag you can specify the parent order tag. If this is blank (or none), the order tag is a parent. If another order tag is selected it is a child.

If you have parent/child tags there are a few differences in how order tags and related options are displayed as outlined below:

  • Child tags are displayed in the format Parent > Child in the bulk action and filter options on the orders list
  • Child tags are displayed after the parent tag in the order list/details pages, with each parent/child group separated with a line break
  • If an order tag is set which is parent only (or if a child order tag is assigned without the parent order tag), these are displayed after any parent/child groups separated with a line break
Order tags displayed hierarchically

Bulk Set or Reset Order Tags

↑ Back to top

The Bulk Set/Reset Order Tags feature will apply or remove order tags on all orders in your WooCommerce store. This is especially useful if:

  • You have just recently installed the Order Tags extension. Primarily on stores that already have many orders.
  • You want to clear all order tags from your orders and start over.

This feature automatically applies to every order in your store. Please note that it is different from typical WooCommerce bulk actions where you select specific orders.

Important notes before using bulk updates

↑ Back to top
  • Backup your site and test on a staging or development environment first. Bulk changes affect all orders. Once you begin, there is no way to revert.
  • The bulk process can be resource-intensive. It will take some time and, on some hosts, may even time out. You should attempt bulk updates on a staging site before running the action on your live site.
  • To use Bulk Updates, you must be logged in as a user with the manage_woocommerce capability. By default, this includes administrators and shop managers.

How to use the bulk update features

↑ Back to top
  1. Open your WordPress dashboard.
  2. Visit this URL (replace the domain with your own):
    https://example.com/wp-admin/admin.php?page=wcot-order-tags-set-tags-bulk
  3. Click the button for the action you want to run:
    • Set tags on all orders: Applies tags to all orders that don’t yet have them.
    • Reset tags on all orders: Removes all tags from every order in your store and runs the Set tags on all orders action.
    • Remove tags on all orders: Completely removes all tags from every order without setting new tags.
  1. A confirmation prompt will ask you to confirm your choice before continuing, to help avoid accidental changes.

Limitations and Special Cases

↑ Back to top

Some order tags cannot be set or reset on old subscription-derived orders. Subscription order tags will usually depend on data from the parent subscription. If the subscription data has changed since the order was created, the tags may no longer be accurate. Those order tags will be skipped by bulk actions to prevent incorrect tagging.

Export orders with order tags

↑ Back to top

Order tags aren’t saved as order meta, for more details on how order tags data is stored, see the order tags data storage section in this documentation.

If you wish to export order data including order tags it requires the export process to specifically find the order tag data.

A third party product, Advanced Order Export For WooCommerce by AlgolPlus, allows orders to be exported with order tags, however it requires a specific configuration applying.

Learn how to configure this product specifically for an order tags export in their documentation.

We can not offer any support for this functionality as it is via a third party product.

Meta data reference

↑ Back to top

When using a meta based automatic assignment option, the order item meta, order meta or product meta is the associated data stored in the database.

There can be standard meta included by WooCommerce, then potentially custom meta data coming from other products, like plugins.

Order item meta data

↑ Back to top

Generally, if you wish to tag based on order item meta data, this will be data that has been added to the order item via the dashboard when editing an order, and therefore you’ll be aware of the meta keys/values to target as you will have input them during the order item edit.

Order meta data

↑ Back to top

Here is a list of standard WooCommerce order meta keys which might be useful when setting order meta data based automatic assignment rules:

This list is from WooCommerce 8.9.0, updates since this release may affect the accuracy of this list.

  • _customer_user
  • _order_key
  • _order_currency
  • _billing_first_name
  • _billing_last_name
  • _billing_company
  • _billing_address_1
  • _billing_address_2
  • _billing_city
  • _billing_state
  • _billing_postcode
  • _billing_country
  • _billing_email
  • _billing_phone
  • _shipping_first_name
  • _shipping_last_name
  • _shipping_company
  • _shipping_address_1
  • _shipping_address_2
  • _shipping_city
  • _shipping_state
  • _shipping_postcode
  • _shipping_country
  • _shipping_phone
  • _completed_date
  • _paid_date
  • _edit_last
  • _cart_discount
  • _cart_discount_tax
  • _order_shipping
  • _order_shipping_tax
  • _order_tax
  • _order_total
  • _payment_method
  • _payment_method_title
  • _transaction_id
  • _customer_ip_address
  • _customer_user_agent
  • _created_via
  • _order_version
  • _prices_include_tax
  • _date_completed
  • _date_paid
  • _payment_tokens
  • _billing_address_index
  • _shipping_address_index
  • _recorded_sales
  • _recorded_coupon_usage_counts
  • _download_permissions_granted
  • _order_stock_reduced
  • _new_order_email_sent

Product meta data

↑ Back to top

Here is a list of standard WooCommerce product meta keys which might be useful when setting product meta data based automatic assignment rules:

This list is from WooCommerce 8.9.0, updates since this release may affect the accuracy of this list.

  • _visibility
  • _sku
  • _price
  • _regular_price
  • _sale_price
  • _sale_price_dates_from
  • _sale_price_dates_to
  • total_sales
  • _tax_status
  • _tax_class
  • _manage_stock
  • _stock
  • _stock_status
  • _backorders
  • _low_stock_amount
  • _sold_individually
  • _weight
  • _length
  • _width
  • _height
  • _upsell_ids
  • _crosssell_ids
  • _purchase_note
  • _default_attributes
  • _product_attributes
  • _virtual
  • _downloadable
  • _download_limit
  • _download_expiry
  • _featured
  • _downloadable_files
  • _wc_rating_count
  • _wc_average_rating
  • _wc_review_count
  • _variation_description
  • _thumbnail_id
  • _file_paths
  • _product_image_gallery
  • _product_version
  • _wp_old_slug
  • _edit_last
  • _edit_lock

Data storage

↑ Back to top

Order tags registers a taxonomy in WordPress with the key wcot_order_tag, on the shop_order post type, this also applies when High Performance Order Storage (HPOS) is enabled, HPOS doesn’t use the shop_order post type, but has compatibility with the shop_order post type in a register taxonomy context.

Each order tag is a term with a relationship to the wcot_order_tag taxonomy, order object, etc.

When order tags are created, set on an order, etc, the data is stored as per the native WordPress taxonomy data storage methods, ultimately resulting in term data being added to the WordPress term database tables.

Retrieval, querying, etc of this data is as per the native WordPress taxonomy data storage methods. These native WordPress taxonomy data storage methods are the standard means of handling tag data in WordPress, it is the same storage mechanism used by WordPress itself to manage tag data on blog posts.

Added Order Tags meta (_wcot_order_tags)

↑ Back to top

For advanced users and developers, the Order Tags plugin stores order tags inside the order’s metadata with the key:_wcot_order_tags

  • This is intended for advanced users or developers.
  • You should NOT edit or change this meta key manually because:
    • Any manual changes will be erased the next time the order updates.
    • The plugin keeps this data synced automatically to match the real order tags.

Why Is This Useful?

↑ Back to top
  • This makes it easier for export tools, other plugins, or your own custom code to use your order tags to trigger actions.

What’s Stored

The meta value is a comma-separated string of order tag slugs. For example:

new-customer,order-over-5,free-gift

Since the value is a string, tools usually don’t parse the tags as separate values. Users should use a “contains” rule when filtering.

How to Use This

  1. Export plugins like WooCommerce Customer / Order CSV Export let users create filters based on order meta keys.
    • e.g., “meta key _wcot_order_tags containsfree-gift
  2. Users can also fetch it via:

    get_post_meta( $order_id, ‘_wcot_order_tags’, true );

Custom development

↑ Back to top

This information is provided for custom development purposes for web developers. As per the WooCommerce support policy we do not offer any support for your use of these custom development options.

Filter hooks

↑ Back to top
Filter hookDescription
wcot_order_tags_bulk_actions_remove_order_tagsWhether remove order tag options are available in bulk actions on the order list
wcot_order_tags_bulk_actions_set_order_tagsWhether set order tag options are available in bulk actions on the order list
wcot_order_tags_color_defaultDefault hex code background color used for order tags if empty
wcot_order_tags_color_text_defaultDefault hex code text color used for order tags if empty
wcot_order_tags_customer_rolesCustomer roles to include customers with custom roles in the set if customer field when adding/editing an order tag
wcot_order_tags_set_if_product_variationsAllows individual variations of a variable product to be selectable in the set if product order tag assignment field
wcot_order_tag_taxonomy_argsFilter the register_taxonomy arguments of the order tags taxonomy

Functions

↑ Back to top
FunctionReturn
wcot_order_tags_get_all_order_tagsArray of term objects
wcot_order_tags_get_order_tag_htmlHTML string for a specific order tag
wcot_order_tags_get_order_tagsArray of term objects
wcot_order_tags_get_order_tags_htmlHTML markup of order tags
wcot_order_tags_make_hierarchicalArray of hierarchical order tags
wcot_order_tags_remove_order_tagBool or error
wcot_order_tags_set_order_tagArray, false or error

BETA functionality

↑ Back to top

We may occasionally include BETA functionality, this is highlighted with a (BETA) label. Functionality with this label should be used with caution and is only recommended to be tested on a staging/development environment. The functionality is included so users can test the functionality/provide feedback before it becomes stable, at which point the (BETA) label will be removed. Note that there may be occasions where BETA functionality is determined unsuitable for use and removed entirely.

Caching

↑ Back to top

If you are using any form of caching then it is recommended that the cache lifespan/expiry should be set to 10 hours or less. This is recommended by most major caching solutions to avoid potential issues with WordPress nonces.

Screen sizes

↑ Back to top
  • Frontend: Where elements may be displayed they will fit within the screen width
  • Backend: Where interfaces may be displayed it is recommended to use a desktop computer with a resolution of 1920×1080 or higher, for lower resolutions any interfaces will attempt to fit within the screen width but some elements may be close together and/or larger than the screen width

Translation

↑ Back to top

We generally recommend Loco Translate to translate and/or adapt text strings within this product.

Works with

↑ Back to top

Where we have explicitly stated this product works with another product, this should only be assumed accurate if you are using the version of the other product which was the latest at the time the latest version of this product was released. This is because, while usually unlikely, the other product may have changed functionality which effects this product.

FAQs

↑ Back to top

Is it compatible with a specific theme?

↑ Back to top

This extension will generally be compatible with most themes. There may be a small number of themes that are fully or partially incompatible due to clashes in functionality and/or if the theme has removed or adapted core WooCommerce functionality. If you would like to know if a specific theme will be compatible before purchase then please contact us and we can advise, it may not be possible for us to determine this e.g. if the theme requires a license and/or several configuration steps. In this scenario you are welcome to purchase and test this extension with the theme and if there is a a compatibility issue you can take advantage of the refund policy for this extension.

Is it compatible with a specific extension/plugin?

↑ Back to top

This extension will generally be compatible with most extensions/plugins. There may be a small number of extensions/plugins that are fully or partially incompatible due to clashes in functionality and/or if the extension/plugin has removed or adapted core WooCommerce functionality. If you would like to know if a specific extension/plugin will be compatible before purchase then please contact us and we can advise, it may not be possible for us to determine this e.g. if the extension/plugin requires a license and/or several configuration steps. In this scenario you are welcome to purchase and test this extension with the other extension/plugin and if there is a a compatibility issue you can take advantage of the refund policy for this extension.

Is it compatible with a specific page builder?

↑ Back to top

This extension will generally be compatible with most page builders. There may be a small number of page builders that are fully or partially incompatible due to clashes in functionality and/or if the page builder has removed or adapted core WooCommerce functionality. If you would like to know if a specific page builder will be compatible before purchase then please contact us and we can advise, it may not be possible for us to determine this e.g. if the page builder requires a license and/or several configuration steps. In this scenario you are welcome to purchase and test this extension with the page builder and if there is a a compatibility issue you can take advantage of the refund policy for this extension.

Support

↑ Back to top

If you need any further assistance with this extension please contact us. Please note that extension support does not include providing assistance with any custom development requirements as per the WooCommerce support policy.

Related Products

Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.

Advanced discount rules, gift cards, BOGO deals, store credits, dynamic pricing, bulk coupon codes, URL coupons and more with this...