1. Casa
  2. Knowledge Base
  3. WooCommerce Wholesale Prices Premium
  4. Backend
  5. Come Impostare un Oggetto Diverso per le Email di Nuovi Ordini all'Ingrosso

Come Impostare un Oggetto Diverso per le Email di Nuovi Ordini all'Ingrosso

⚠️ Bozza di aggiornamento — NON fare clic su "Pubblica" in WP Admin.
Questa bozza deve essere unita all'articolo originale, non pubblicata come nuova. Pubblicarla direttamente crea un articolo duplicato all'URL sbagliato.

➡️ Rivedi la bozza, quindi esegui /kb-publish 86cxuy4ru — rileva il collegamento rydm e instrada automaticamente tramite l'endpoint di unione.

Articolo originale: Come impostare un oggetto email diverso per i nuovi ordini all'ingrosso · Attività ClickUp: Come impostare un oggetto email diverso per i nuovi ordini all'ingrosso

Se gestisci un negozio all'ingrosso, potresti voler che le tue email di notifica per i nuovi ordini identifichino chiaramente gli ordini all'ingrosso e mostrino persino quale ruolo all'ingrosso ha effettuato l'ordine. WooCommerce Wholesale Prices Premium non include ancora un modo integrato per sovrascrivere l'oggetto dell'email, ma puoi personalizzarlo utilizzando uno snippet di codice. Questo articolo ti mostra come.

Prerequisiti

Come personalizzare l'oggetto dell'email per i nuovi ordini all'ingrosso

Per impostazione predefinita, WooCommerce utilizza lo stesso oggetto dell'email per tutti i nuovi ordini. Lo snippet seguente si aggancia a woocommerce_email_subject_new_order e aggiunge il nome visualizzato del ruolo all'ingrosso all'oggetto quando l'ordine è un ordine all'ingrosso. Per gli ordini al dettaglio, l'oggetto predefinito di WooCommerce viene restituito invariato.

Aggiungi il seguente snippet al file functions.php del tuo child theme o a un plugin per snippet di codice:

// Custom New Order Subject - Adding the Wholesale Role Name in the Subject Line
add_filter( 'woocommerce_email_subject_new_order', 'wwpp_change_email_subject', 1, 2 );

function wwpp_change_email_subject( $subject, $order ) {

    // Only customise the subject for wholesale orders.
    $order_type = $order->get_meta( '_wwpp_order_type', true );
    if ( 'wholesale' !== $order_type ) {
        return $subject;
    }

    // Get the wholesale role slug stored on the order (e.g. 'wholesale_customer').
    $role_slug = $order->get_meta( '_wwpp_wholesale_order_type', true );

    // Look up the human-readable role name from the registered wholesale roles.
    // getAllRegisteredWholesaleRoles() returns an array keyed by role slug,
    // each entry containing a 'roleName' key with the display name.
    $all_wholesale_roles = WWP_Wholesale_Roles::getInstance()->getAllRegisteredWholesaleRoles();
    $role_label          = isset( $all_wholesale_roles[ $role_slug ]['roleName'] )
        ? $all_wholesale_roles[ $role_slug ]['roleName']
        : $role_slug; // Fallback to slug if the role is no longer registered.

    // Build the custom subject using the readable role name.
    $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
    $subject  = sprintf( '[%s] Order #%s - %s', $role_label, $order->get_id(), $blogname );

    return $subject;
}

Cosa memorizzano _wwpp_order_type e _wwpp_wholesale_order_type: Ogni ordine effettuato da un cliente all'ingrosso riceve due valori meta. _wwpp_order_type è 'wholesale' o 'retail'. _wwpp_wholesale_order_type memorizza lo slug del ruolo all'ingrosso (ad es. wholesale_customer), non il nome visualizzato. Lo snippet sopra utilizza getAllRegisteredWholesaleRoles() per convertire lo slug nell'etichetta leggibile che hai configurato nelle impostazioni del tuo ruolo all'ingrosso.

Risoluzione dei problemi

L'oggetto non cambia. Verifica che lo snippet sia stato salvato correttamente e che non ci siano errori PHP. Il filtro woocommerce_email_subject_new_order viene eseguito solo quando WooCommerce invia l'email del nuovo ordine. Conferma che l'email sia abilitata in WooCommerce → Impostazioni → Email → Nuovo Ordine.

L'oggetto mostra lo slug del ruolo invece del nome visualizzato. Ciò accade se il ruolo all'ingrosso è stato eliminato o rinominato dopo che l'ordine è stato effettuato. In tal caso, lo snippet torna allo slug. Se vedi costantemente gli slug, conferma che il ruolo sia ancora registrato in WooCommerce Wholesale Prices → Ruoli all'ingrosso.

Gli ordini al dettaglio mostrano anche un oggetto modificato. Assicurati che lo snippet includa il return anticipato _wwpp_order_type !== 'wholesale' (come mostrato sopra). Senza di esso, il filtro viene eseguito anche sugli ordini al dettaglio. Poiché _wwpp_wholesale_order_type è vuoto per gli ordini al dettaglio, l'oggetto mostrerebbe quindi una parentesi vuota.

Serve Aiuto?

Se hai una domanda o riscontri problemi, siamo qui per aiutarti.

Questo articolo è stato utile?

Articoli Correlati

Completa il tuo acquisto