Les e-mails WooCommerce utilisent chaque élément dans un ordre par défaut, au sein de la table "order items". Cette table est automatiquement incluse dans presque tous les e-mails transactionnels de WooCommerce, et affiche la quantité de produits, le prix, et le total. Cependant, ce ne sont pas les seules données dont WooCommerce dispose dans la table "order items" pour ses e-mails. Il y a effectivement d’autres morceaux de données sur les produits qui peuvent être inclus, mais ils sont "désactivés" par défaut.

WooCommerce peut inclure des informations comme l’image du produit, le SKU... et il est très facile de changer les valeurs par défaut pour ces morceaux de données, vous permettant ainsi d’ajouter plus d’informations aux e-mails WooCommerce.

Prenons un exemple :

Comment ajouter des images aux produits dans les e-mails WooCommerce ?

WooCommerce inclut la possibilité d’ajouter vos images de produits pour les commandes, dans les e-mails transactionnels de votre boutique, via un filtre.

Nous aurons besoin d’utiliser le filtre woocommerce_email_order_items_table pour changer les données qui sont incluses dans la table order items. Ce filtre permet de modifier les valeurs par défaut pour les éléments du modèle “Email Order Items” de sorte que nous pouvons apporter des changements comme passer le SKU (Stock Keeping Unit ou UGS Unité de gestion des stocks) sur "ON" ou afficher les images des produits.

Ce filtre gère toutes les valeurs par défaut de la table "email order items". UGS, notes de commande, images et les liens de téléchargement sont tous mis à "false" ("off") par défaut.

Disons d’abord que nous allons activer les images de produits au sein de notre e-mail. Nous pouvons prendre les données transmises dans ce filtre et changer la valeur de show_image en "true" avec ce bout de code que vous pouvez placer dans un plugin personnalisé ou dans votre fichier functions.php.

// Modifier les valeurs par defaut de la table order items
function sb_add_wc_order_email_info( $table, $order ) {
  
	ob_start();
	
	$template = $plain_text ? 'emails/plain/email-order-items.php' : 'emails/email-order-items.php';
	wc_get_template( $template, array(
		'order'                 => $order,
		'items'                 => $order->get_items(),
		'show_download_links'   => $show_download_links,
		'show_sku'              => $show_sku,
		'show_purchase_note'    => $show_purchase_note,
		'show_image'            => true,
		'image_size'            => $image_size
	) );
   
	return ob_get_clean();
}
add_filter( 'woocommerce_email_order_items_table', 'sb_add_wc_order_email_info', 10, 2 );
Modifier les valeurs par défaut de la table order items

Lorsque ce code est utilisé, une image du produit de 32 pixels par 32 pixels est automatiquement insérée dans la table « order items » avec les emails WooCommerce.

Cet extrait de code peut également être modifié afin de changer la taille de l’image. Plutôt que d’inclure $image_size pour cette valeur, nous pouvons passer à un éventail de tailles. Le premier nombre de la série est la largeur, quant au second nombre, il définit la hauteur de l’image. Il est préférable de garder le ratio d’aspect pour vos vignettes de produits à 1:1.

Nous allons changer la taille de l’image à 64px par 64px au lieu de la valeur par défaut qui est 32px par 32px.

Pour ce faire, il vous suffit de modifier :

'image_size' => $image_size

en

'image_size' => array( 64, 64 )

Cela vous permet de montrer une photo à côté du nom du produit dans les e-mails, pour confirmer l’achat.

 

Comment ajouter le SKU/UGS des produits dans les e-mails WooCommerce ?

Le SKU/UGS du produit peut également être activé dans les e-mails en utilisant le même code. L'affichage se fera comme suit :

Nom du produit (#SKU)

Le croisillon (#) avant le SKU/UGS sera toujours affiché.

Pour activer SKU/UGS, vous devez changer:

'show_sku' => $show_sku,

en

'show_sku' => true,

À ce stade, vous remarquez que les SKU/UGS sont présentés en ligne avec les noms des produits. Vous pouvez utiliser woocommerce_order_item_name pour ajouter un saut de ligne après le nom du produit. Ainsi, votre présentation sera :

Nom du produit

(#SKU)

Pour ce faire, il vous suffit d’ajouter le code suivant dans votre plugin personnalisé ou dans votre fichier functions.php.

function sb_edit_order_item_name( $name ) {
    return $name . '<br />';
}
add_filter( 'woocommerce_order_item_name', 'sb_edit_order_item_name' );
Saut de ligne après le nom du produit

Ajouter d’autres informations à vos e-mails WooCommerce est possible, mais cela nécessite une personnalisation plus avancée pour le faire. Ces éléments de données sont déjà inclus dans les e-mails, et sont tout simplement désactivés par défaut.
Je ne recommande pas de changer show_download_links par défaut WooCommerce gère cela pour vous en fonction de vos paramètres.

Cependant, vous pouvez également inclure les notes d’achat si vous le désirez.