Se vuoi che gli ordini all'ingrosso si distinguano a colpo d'occhio, puoi dare loro un prefisso numerico d'ordine personalizzato. Ad esempio, puoi trasformare l'ordine #1234 in WH-1234. Questo articolo ti mostra come aggiungere un prefisso personalizzato ai numeri d'ordine all'ingrosso con uno snippet di codice. Questo rende facile distinguere gli ordini all'ingrosso e quelli al dettaglio nell'elenco degli ordini di WooCommerce.
Prerequisiti
- WooCommerce Wholesale Prices Premium deve essere installato e attivo. Il rilevamento del tipo d'ordine utilizzato in questo snippet si basa sulla chiave meta
_wwpp_order_type, che viene impostata da questo plugin al momento del checkout. - Accesso per aggiungere codice PHP personalizzato, tramite il file functions.php del tuo tema child attivo o un plugin per snippet di codice come WPCode.
La colonna del tipo d'ordine
Quando viene effettuato un ordine all'ingrosso, WooCommerce Wholesale Prices Premium aggiunge una colonna Tipo d'ordine alla pagina Ordini di WooCommerce in modo da poter vedere a colpo d'occhio quali ordini provengono da clienti all'ingrosso.
Puoi estendere questa funzionalità aggiungendo un prefisso personalizzato al numero d'ordine per gli ordini all'ingrosso. Aggiungi il seguente snippet al file functions.php del tuo tema child o a un plugin per snippet di codice:
add_filter( 'woocommerce_order_number', 'wwpp_custom_wholesale_order_number_prefix', 10, 2 );
function wwpp_custom_wholesale_order_number_prefix( $order_number, $order ) {
$prefix = 'WH-'; // Change this to any prefix you like
$order_type = $order->get_meta( '_wwpp_order_type', true ); // HPOS-compatible meta read
if ( 'wholesale' === $order_type ) {
return $prefix . $order_number;
}
return $order_number;
}
Modifica il valore di $prefix con qualsiasi stringa desideri, ad esempio 'WHSL-' o 'B2B-'. Il prefisso viene anteposto al numero d'ordine esistente, quindi l'ordine #1234 diventa WH-1234.
Questo snippet utilizza $order->get_meta() per leggere il tipo d'ordine. Questo è l'approccio corretto per i siti che utilizzano High-Performance Order Storage (HPOS) di WooCommerce. L'utilizzo diretto di get_post_meta() non funzionerà sui negozi con HPOS abilitato perché i dati dell'ordine non sono più archiviati nella tabella dei post.
Risultato
Ecco il risultato:

Risoluzione dei problemi
Il prefisso non viene visualizzato sugli ordini all'ingrosso. Conferma che WooCommerce Wholesale Prices Premium sia attivo. La meta _wwpp_order_type viene impostata da questo plugin al momento del checkout, quindi gli ordini effettuati prima della sua installazione non avranno la meta e non corrisponderanno. Verifica anche che lo snippet sia stato aggiunto al file functions.php del tuo tema child (non al file del tema padre, che verrà sovrascritto con gli aggiornamenti del tema) o a un plugin per snippet di codice.
Il prefisso appare su tutti gli ordini, non solo su quelli all'ingrosso. Verifica che la chiamata $order->get_meta( '_wwpp_order_type', true ) restituisca 'wholesale' per gli ordini previsti. Puoi aggiungere temporaneamente una chiamata var_dump all'interno della funzione (solo su un sito di sviluppo) per ispezionare il valore restituito.
Serve Aiuto?
Se hai una domanda o riscontri problemi, siamo qui per aiutarti.
- Utenti Premium: Apri un ticket di supporto
- Utenti Gratuiti: Visita il nostro forum della community

