Description
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.
- Order numbers counter
- Possible values: Sequential; Order ID; Pseudorandom - crc32 Hash (max 10 digits).
- Default:
Sequential
- Default:
- 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
- Default:
- Sequential: Reset counter
- This will be ignored if sequential order numbering is disabled. Possible values: Disabled; Daily; Monthly; Yearly.
- Default:
Disabled
- Default:
- Reset counter value
- Counter value to reset to. This will be ignored if Sequential: Reset counter option is set to Disabled.
- Default:
1
- Default:
- 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-
ormdy
.- 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
- Default:
- 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}
- Default:
- Enable order tracking by custom number
- Default:
yes
- Default:
- 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 isQWERTY456789
, then searching can be done by456789
only (i.e. without the prefix).- Default:
yes
- Default:
- 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
- Default:
- 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; }
Jean-Luc –
Thanks for this great plugin – even free version is perfect – Pro is even better…