Hello Steve,
There’s several approaches to solving this.
1a) The simplest solution is indeed to leave the “Display built-in sequential invoice number” unchecked. It will then not print any invoice number in the PDF at all and just show the order number.
1b) If you want it to say “Invoice Number” instead of “Order Number”, you’ll have to edit/customize the template (following instructions from the template settings page) and simply rename the label.
2) If you want it display the same number twice, once as “Order Number” and once as Invoice number (formatted according to the settings), you can add the following code to your theme’s functions.php:
/**
* Format order number with invoice number settings
*/
add_filter( 'wpo_wcpdf_invoice_number', 'wpo_wcpdf_format_invoice_number', 20, 4 );
function wpo_wcpdf_format_invoice_number( $invoice_number, $order_number, $order_id, $order_date ) {
// We want to use the order number as invoice number!
$invoice_number = ltrim($order_number, '#');
// get format settings
$template_settings = get_option('wpo_wcpdf_template_settings');
$formats['prefix'] = isset($template_settings['invoice_number_formatting_prefix'])?$template_settings['invoice_number_formatting_prefix']:'';
$formats['suffix'] = isset($template_settings['invoice_number_formatting_suffix'])?$template_settings['invoice_number_formatting_suffix']:'';
$formats['padding'] = isset($template_settings['invoice_number_formatting_padding'])?$template_settings['invoice_number_formatting_padding']:'';
// Replacements
$order_year = date_i18n( 'Y', strtotime( $order_date ) );
$order_month = date_i18n( 'm', strtotime( $order_date ) );
foreach ($formats as $key => $value) {
$value = str_replace('[order_year]', $order_year, $value);
$value = str_replace('[order_month]', $order_month, $value);
$formats[$key] = $value;
}
// Padding - minimum of 3 for safety
if ( ctype_digit( (string)$formats['padding'] ) && $formats['padding'] > 3 ) {
$invoice_number = sprintf('%0'.$formats['padding'].'d', $invoice_number);
}
$formatted_invoice_number = $formats['prefix'] . $invoice_number . $formats['suffix'] ;
return $formatted_invoice_number;
}
Good luck!
Ewout