Sale! Tested Updated Bestseller Perfect rating

Custom Order Numbers for WooCommerce

(1 customer review)

From: $29.00 / year

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

$39.00 $29.00 Single site1 year of updates and support30-day money-back guaranteeBuy
$129.00 $99.00 Unlimited sites1 year of updates and support30-day money-back guaranteeBuy
$149.00 $129.00Unlimited sitesLifetime updates and support30-day money-back guaranteeBuy


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.

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

Custom Order Numbers for WooCommerce - Admin Settings - General Options

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. Required fields are marked *

26 thoughts on "Custom Order Numbers for WooCommerce"

  1. Hello,
    Is possible to get custom order number from
    $order_id = $order->get_id();
    in another plugin?

    Best Regards

    1. Hi Jakub,

      To get the custom order number, you need to use the below code:


      where $order is an Order object.


  2. Hi.
    Why does the order N° change after the order status change from ‘in process” to “sent”?
    How to modify it in order to keep the same original N° that the client get?

    Thanks in advance.

    1. Hi Guezellou,

      We have created a ticket for you on our ticketing system. Can you please check and revert to us on that?

  3. Hi,
    I’m also having trouble with the user / guest tracking of the order through the “woocommerce order tracking form” even though I checked the box ” “Enable order tracking by custom number”.

    I’m using the free version – is this “fixed” in the pro?

    Kind regards,

    1. Hi Nicki,

      We have created a ticket for you on our ticketing system. Can you please check and revert to us on that?

  4. Hi,

    The new custom order id search is not working in admin order page. If any options available in the pro version?

    1. Hi,

      We have created a ticket for you on our ticketing system. Can you please check and revert to us on that?

  5. Hi, we need a Random order numbers. First, we installed free plugin, it works well, but 10 digits for order number is too many. We buy a plugin for Order number width option, but it still 10 digits, we need only 5. How to set 5 random digits?

    1. Hi Altos,

      We have created a ticket for you on our ticketing system. Can you please check and revert to us on that?

  6. Hi,
    I am a pro-user of “Custom Order Numbers for WooCommerce”. It works fine, but these days I encountered an interesting situation: I had to add an order manually which automatically reset my counter to zero and gave the wrong number to the new order (it even seems it deleted the old order previously assigned the counter number). What could be the problem?
    Kind regards,

    1. Hi Hans,

      We have created a ticket for you on our ticketing system. Can you please check and revert to us on that?

  7. Hi,

    We’re using your plugin in our new site, and we found an issue with it.

    Sometimes, it suddenly resets the ‘Next Order Number’ to 1, which let’s following orders get the same number as existing orders. We have set the plugin to reset the counter each year, we think it might be something with this setting. For now, we disabled the automatic resetting of the counter.

    Could you please get back to us as soon as possible?

    Thank you in advance,
    Marco Peters

    1. Hi Marco,

      We have created a ticket for you on our ticketing system. Can you please check and revert to us on that?

  8. How can we get Original Order Id by Order Number provided by you.

    1. Hi,

      I’ve just added a snippet to the “Tips & Tricks” section (get_order_id_by_order_number() function). Not sure if it’s the only way, but I can’t think of another one.

      Please take a look and let me know if you have any questions/notes.

  9. Hi
    I have installed the free version of this plugin
    Somebody is placing fake orders on my website in order to check sales volume
    I have changed the order number to random thanks to your plugin, but it does not apply to the check-out URL, which shows the “real” order number
    Can the Pro version help me in that aspect?
    Thank you,

  10. I got the plugin for the random numbering. How to limit the character count produced? The pseudorandom order numbers counter says it produces a max of 10 digits, but how can you limit that to 6 only? I set the Order number width to 6 but that has no effect

  11. Hi,

    Is it possible to add a feature to reset the counter based on a date in additional to the field of Sequential: Reset counter?

    If I select monthly, then I can input a date , such as 15, meaning the counter will be reset on 15 of every month.

    if I select yearly, then I want to input a date, such as 1-Aug, meaning the counter will be reset on 1-Aug every year.

    1. Hi,

      Unfortunately there is no way to set this date now, but this seems like an interesting idea, so I will add it in next version.

      Best regards,

  12. Hi,

    could you help me? I started to you your plugin to renumerate my orders, but I use the Wocommerce Product Attachment plugin because I need some attachement at my products. So with this plugin at the end of the order, every single product’s attachment is been able to download. When I turn in your plugin at the attachement I got a Fatal errol message.
    Could you help me how can I solve it?
    Here is the picture about it:

  13. Hello, the free plugin version works great, but in the email that the client receives, there is an error that appears before the Order number and table in the email that is sent to the user, how can i fix that?

    Warning: call_user_func_array() expects parameter 1 to be a valid callback, class ‘WC_Order’ does not have a method ’email_instructions’ in /home/xxxx/public_html/ on line 288

  14. Hi,

    My client wishes to start renumbering each year in this format: C218001 where 18 is the current year and 1 the first order.
    Is that possible with this plug-in?


  15. I have this exact problem as well.

  16. Hi,

    The order numbers do change on the WooCommerce, but whe I export orders the old post-ID comes out as the order number column.

    Is this something that includes on the Pro version?


    1. any answer on this? We do a daily web import to our quickbooks server and I need the order numbers to match woocommerce. Happy to buy the Pro version is this is the case…

Leave a Reply

Your email address will not be published. Required fields are marked *


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.

Free version

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

Installation and Updates

  • Buy the plugin 🙂
  • Download plugin's zip to your computer (you will receive an email with download link, or you can always download the plugin from your account).
  • Go to "Admin Dashboard > Plugins > Add New > Upload Plugin" and browse for downloaded zip file.
  • If plugin is successfully installed - you should see it added to the Plugins list.
  • To keep WPFactory items up to date, please install WPFactory Helper plugin and enter your site key.


We want to ensure that you are 100% happy with your purchase, so if you feel the product(s) you purchased are not the best fit for your requirements and you attempted to resolve issues with product's author, we are offering 30 day money back guarantee refund policy.