Sale! Updated Bestseller High rating Documented

Custom Order Numbers for WooCommerce

(1 customer review)

Enable sequential order numbering in WooCommerce; set custom number prefix, suffix and number width.

Item is no longer available. Existing customers can still download the latest plugin version from the My Account page.

Plugin lets you set custom order numbers in WooCommerce.

Main features:

  • WooCommerce order numbers can be sequential, random or by order ID.
  • Sequential counter can be set to automatically reset on daily, monthly or yearly basis.
  • Custom numbers will be assigned to new orders automatically.
  • There is also a tool to renumerate (i.e. recount) existing orders.
  • Optionally you can add prefix, suffix, date prefix, date suffix to order number.
  • You can set order number width.
  • Fully customizable order number template.
  • You can also enable order tracking by custom number and admin order search by custom number.
  • Manual order number counter.

Custom Order Numbers Options

Plugin settings are accessible through WooCommerce > Settings > Custom Order Numbers.

Custom Order Numbers for WooCommerce - Admin Settings - General Options

Order numbers counter
Possible values: Sequential; Order ID; Pseudorandom - crc32 Hash (max 10 digits).
Default: Sequential
Sequential: Next order number
This will be ignored if sequential order numbering is disabled. Next new order will be given this number. Use Renumerate Orders tool for existing orders.
Default: 1
Sequential: Reset counter
This will be ignored if sequential order numbering is disabled. Possible values: Disabled; Daily; Monthly; Yearly.
Default: Disabled
Reset counter value
Counter value to reset to. This will be ignored if Sequential: Reset counter option is set to Disabled.
Default: 1
Order number custom prefix
Prefix before order number (optional). This will change the prefixes for all existing orders.
Default: None
Order number date prefix
Date prefix before order number (optional). This will change the prefixes for all existing orders. Value is passed directly to PHP date function, so most of PHP date formats can be used. The only exception is using \ symbol in date format, as this symbol will be excluded from date. E.g. try: Y-m-d- or mdy.
Default: None
Order number width
Minimum width of number without prefix (zeros will be added to the left side). This will change the minimum width of order number for all existing orders. E.g. set to 5 to have order number displayed as 00001 instead of 1. Leave zero to disable.
Default: 0
Order number custom suffix
Suffix after order number (optional). This will change the suffixes for all existing orders.
Default: None
Order number date suffix
Date suffix after order number (optional). This will change the suffixes for all existing orders. Same as with Order Number Date Prefix, value is passed directly to PHP `date` function.
Default: None
Order number template
Replaced values: {prefix}, {date_prefix}, {number}, {suffix}, {date_suffix}.
Default: {prefix}{date_prefix}{number}{suffix}{date_suffix}
Enable order tracking by custom number
Default: yes
Enable order admin search by custom number
Please note that this will enable searching by number part only. That is: if, for example, you have set prefix to QWERTY and some order’s custom number is QWERTY456789, then searching can be done by 456789 only (i.e. without the prefix).
Default: yes
Manual order number counter
This will add Order Number meta box to each order’s edit page. Order Numbers Counter must be set to Sequential.
Default: no
Hide Renumerate Orders admin menu for roles
Hide Renumerate Orders admin menu for selected user roles. All user roles are listed here – even those which do not see the menu by default.
Default: None
Hide Custom Order Numbers admin settings tab for roles
Hide Custom Order Numbers admin settings tab for selected user roles. Tab can not be hidden for administrators. All user roles are listed here – even those which do not see the tab by default.
Default: None

Tips & Tricks

If you need to display modified (i.e. custom) order number in PHP:

// `$original_order_number` (i.e. order ID) can be `false`, if you are displaying custom number for the *current* order
$order = wc_get_order( $original_order_number );
echo $order->get_order_number();

Getting original order ID from the modified order number is more complicated:

function get_order_id_by_order_number( $order_number ) {
	foreach ( wc_get_orders( array( 'limit' => -1 ) ) as $order ) {
		if ( $order->get_order_number() == $order_number ) {
			return $order->get_id();
	return false;

1 review for Custom Order Numbers for WooCommerce

  1. Jean-Luc

    Thanks for this great plugin – even free version is perfect – Pro is even better…

Add a review

Your email address will not be published.

Free version

This plugin is a premium version of free "Custom Order Numbers for WooCommerce" plugin.


1.6.1 - 06/05/2022

  • Fix - Throwing fatal error and some PHP warnings on WooCommerce Orders page.

1.6.0 - 26/04/2022

  • Enhancement - Added a feature to set the Prefix/suffix to free orders.
  • Enhancement - Added a feature for Pseudorandom number contain letters.
  • Enhancement - Added license activation notice.
  • Enhancement - Added faq page.
  • Enhancement - Added {sku} into custom order numbers templates.
  • Fix - The prefix is getting applied to all Existing Order Numbers even though we have the option selected to "To all new orders only".
  • Fix - Duplicate fields were being displayed on WooCommerce > Settings page.

1.5.0 - 26/10/2021

  • Enhancement - Added a feature to set the Prefix/suffix in the custom order number based on the different user roles.

1.4.3 - 15/07/2021

  • Enhancement - Added an option to set the reset counter on weekly basis for sequential custom order numbers.
  • Compatibility - Made plugin compatible with the Orion SMS OTP Verification (Pro) plugin, where the custom order number was not coming in the SMS which comes after order is placed.
  • Fix - Fixed the errors coming with the PHP 8.
  • Fix - Critical error message were coming on saving the settings page. This is partially fixed. A permanent fix will be released in the next update.

1.4.2 - 24/03/2021

  • Compatibility with Germanized for WooCommerce plugin
  • Fix - Order numbers were coming duplicate for Subscription renewals. This is fixed now.
  • Fix - Manual order number counter option was not working. This is fixed now.
  • Fix - Error was coming in the console on activation of the plugin. This is fixed now.

1.4.1 - 21/01/2021

  • Fix - Some WPCS errors are fixed. The update notification from v1.3.1 onwards was not coming due to those errors.

1.4.0 - 15/01/2021

  • Enhancement - You can now search by custom order numbers on the WooCommerce Orders page. This required a change in the database, which has been implemented in this release.
  • Enhancement - You can now choose to apply the prefix/suffix to new orders, from a past date, from a certain order ID or to all orders.
  • Fix - Recurring action continues to schedule after the plugin is deactivated. This is fixed now.
  • Fix - While exporting the orders to CSV, it is not showing the orders along with the prefix. This is fixed now.

1.3.2 - 09/11/2020

  • Fix - Order Numbers were getting changed when the orders were updated and it was breaking the sequence. This has been fixed.
  • Update compatibility with WooCommerce 4.6

1.3.1 - 12/10/2020

  • Compatibility with WP 5.5
  • Compatibility with WC 4.4
  • Fix - Order number width can now be set when Pseudorandom number type is selected.

1.3 - 10/06/2020

  • This update to the plugin includes the ability to track plugin data with the site admin's consent.
  • Some minor WPCS compatibility changes.

1.2.7 - 22/02/2020

  • This update to the plugin is for announcing the plugin compatibility with WooCommerce v3.9.x

1.2.5 - 01/04/2019

  • Added uninstall.php to ensure the plugin settings are removed from the DB when the plugin is deleted.
  • Fixed an issue where renewal orders generated by WooCommerce Subscriptions have the same custom order number as the parent order.

1.2.3 - 05/08/2018

  • Feature - "Order number template" option added.

1.2.2 - 05/08/2018

  • Feature - Sequential: Reset counter - "Reset counter value" option added.
  • Feature - Hide "Renumerate Orders" admin menu for roles option added.
  • Feature - Hide "Custom Order Numbers" admin settings tab for roles option added.
  • Dev - Admin settings - Restyling.

1.2.1 - 30/07/2018

  • Fix - %d replaced with %s in sprintf(), so numbers exceeding max integer would be handled correctly (for "Pseudorandom - crc32 Hash (max 10 digits)" option).

1.2.0 - 24/06/2018

  • Feature - Order numbers counter - "Pseudorandom - crc32 Hash (max 10 digits)" option added.
  • Fix - Unnecessary counter increase on non-sequential number counters fixed.
  • Dev - "Reset section settings" option added.
  • Dev - "Use MySQL transaction" option removed (now always set to yes).
  • Dev - Settings saved as main class property.
  • Dev - Admin settings descriptions updated.
  • Dev - Plugin URI updated to
  • Dev - Minor code refactoring.
  • Dev - readme.txt updated.

1.1.2 - 09/03/2018

  • Feature - "Sequential: Reset Counter" option added.

1.1.1 - 13/01/2018

  • Feature - "Manual Order Number" option added.
  • Dev - Confirmation (JavaScript) added for Renumerate Orders tool.
  • Dev - "WC tested up to" added to plugin header.

1.1.0 - 24/07/2017

  • Dev - WooCommerce v3 compatibility - Order ID and date.
  • Dev - Link updated from to
  • Dev - Plugin header ("Text Domain" etc.) updated.

1.0.1 - 06/01/2017

  • Fix - Translation domain fixed.
  • Dev - Language (POT) file uploaded.

1.0.0 - 02/01/2017

  • Initial Release.