Ce brouillon doit être fusionné dans l'article original, pas publié comme un nouvel article. Le publier directement crée un article en double à la mauvaise URL.
➡️ Revoyez le brouillon, puis exécutez
/kb-publish 86cxuy4ru — il détecte le lien rydm et achemine automatiquement via le point de terminaison de fusion.Article original : Comment définir un objet d'e-mail de nouvelle commande différent pour les commandes en gros · Tâche ClickUp : Comment définir un objet d'e-mail de nouvelle commande différent pour les commandes en gros
Si vous gérez une boutique de vente en gros, vous voudrez peut-être que vos e-mails de notification de nouvelle commande identifient clairement les commandes en gros, et même indiquent quel rôle de vente en gros a passé la commande. WooCommerce Wholesale Prices Premium n'inclut pas encore de moyen intégré pour remplacer l'objet de l'e-mail, mais vous pouvez le personnaliser à l'aide d'un extrait de code. Cet article vous montre comment.
Prérequis
- WooCommerce Wholesale Prices Premium installé et activé
- Accès au fichier
functions.phpde votre thème ou à un plugin d'extraits de code (tel que WPCode)
Comment personnaliser l'objet de l'e-mail de nouvelle commande pour les commandes en gros
Par défaut, WooCommerce utilise le même objet d'e-mail pour toutes les nouvelles commandes. L'extrait ci-dessous s'accroche à woocommerce_email_subject_new_order et ajoute le nom d'affichage du rôle de vente en gros à l'objet lorsqu'il s'agit d'une commande en gros. Pour les commandes de détail, l'objet par défaut de WooCommerce est renvoyé inchangé.
Ajoutez l'extrait suivant au fichier functions.php de votre thème enfant ou à un plugin d'extraits de code :
// 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;
}
Ce que stockent _wwpp_order_type et _wwpp_wholesale_order_type : Chaque commande passée par un client en gros reçoit deux valeurs méta. _wwpp_order_type est soit 'wholesale', soit 'retail'. _wwpp_wholesale_order_type stocke le slug du rôle de vente en gros (par exemple, wholesale_customer), pas le nom d'affichage. L'extrait ci-dessus utilise getAllRegisteredWholesaleRoles() pour convertir le slug en l'étiquette lisible que vous avez configurée dans vos paramètres de rôle de vente en gros.
Dépannage
L'objet ne change pas. Vérifiez que l'extrait a été enregistré correctement et qu'il n'y a pas d'erreurs PHP. Le filtre woocommerce_email_subject_new_order ne s'exécute que lorsque WooCommerce envoie l'e-mail de nouvelle commande. Confirmez que l'e-mail est activé sous WooCommerce → Paramètres → E-mails → Nouvelle commande.
L'objet affiche le slug du rôle au lieu du nom d'affichage. Cela se produit si le rôle de vente en gros a été supprimé ou renommé après le passage de la commande. L'extrait revient alors au slug. Si vous voyez des slugs de manière cohérente, confirmez que le rôle est toujours enregistré sous WooCommerce Wholesale Prices → Rôles de vente en gros.
Les commandes de détail montrent également un sujet modifié. Assurez-vous que l'extrait inclut le retour anticipé _wwpp_order_type !== 'wholesale' (comme montré ci-dessus). Sans cela, le filtre s'exécute également sur les commandes de détail. Comme _wwpp_wholesale_order_type est vide pour les commandes de détail, le sujet afficherait alors une parenthèse vide.
Besoin d'aide ?
Si vous avez une question ou rencontrez des problèmes, nous sommes là pour vous aider.
- Utilisateurs premium : Ouvrir un ticket de support
- Utilisateurs gratuits : Visitez notre forum communautaire
