Il n’y a rien de mieux que d’avoir des informations sur une commande que vous avez passée concernant son statut ou toute autre donnée que vous pouvez trouver utile concernant votre commande. Par défaut, WooCommerce stocke chaque action liée à une commande dans la base de données. Cette série d’actions est disponible dans l’administration, dans la barre latérale lorsque vous modifiez une commande. Mais vos clients n’ont pas accès à cette liste d’actions. La bonne nouvelle est que vous pouvez facilement l’ajouter à n’importe quel e-mail envoyé par WooCommerce. Dans cet article, je vais vous montrer ajouter pour ajouter les notes de commande à l’e-mail complet (c’est l’e-mail envoyé lorsque le statut de la commande est marqué comme terminé). Mais vous pouvez également utiliser cette méthode pour ajouter les notes de commande à tout autre e-mail.
Modèles personnalisés ou crochets ?
Juste un petit rappel : tous les e-mails de WooCommerce sont fournis à l’aide de modèles et vous pouvez remplacer les modèles par défaut en créant vos propres modèles. Fondamentalement, un modèle personnalisé vous permet de remplacer les fichiers par défaut de WooCommerce et d’utiliser vos propres fichiers personnalisés à la place. Voici un rapide tutoriel qui vous expliquera comment créer vos modèles personnalisés : http://docs.woothemes.com/document/template-structure/.
Vous pouvez ajouter les notes de commande dans un modèle personnalisé, mais j’aimerais vous montrer une autre façon de le faire, à l’aide d’un crochet. L’idée est de ne pas utiliser de modèles personnalisés, mais d’utiliser le fichier functions.php dans votre dossier de thème uniquement.
Les notes de commande sont des commentaires WordPress
Les notes de commande sont des commentaires WordPress ayant un type spécifique « order_note », vous pouvez donc utiliser la classe WordPress WP_Query appliquée aux commentaires à l’aide de la fonction get_comments().
Le crochet que nous devons utiliser est une action appelée « woocommerce_email_order_meta ». L’idée est d’appeler une fonction personnalisée lorsque cette action est chargée dans le processus WooCommerce.
L’utilisation de get_comments() simplifie beaucoup la façon dont nous pouvons récupérer les notes de commande, nous devons juste nous assurer que nous voulons lister les commentaires liés à une commande spécifique en utilisant l’ID de la publication et l’attribut de commentaire « approuver », ce qui signifie que le commentaire est validé (par WooCommerce dans ce cas).
Le code
Voici le code à placer dans le fichier functions.php de votre dossier de thème :
add_action( 'woocommerce_email_order_meta', 'woo_add_order_notes_to_email' );
function woo_add_order_notes_to_email() {
global $woocommerce, $post;
$args = array(
'post_id' => $post->ID,
'approve' => 'approve',
'type' => 'order_note'
);
$notes = get_comments( $args );
echo '<h2>' . __( 'Order Notes', 'woocommerce' ) . '</h2>';
echo '<ul class="order_notes">';
if ( $notes ) {
foreach( $notes as $note ) {
$note_classes = get_comment_meta( $note->comment_ID, 'is_customer_note', true ) ? array( 'customer-note', 'note' ) : array( 'note' );
?>
<li rel="comment_ID ) ; ?>" class="">
<div class="note_content">
comment_content ) ) ); ?>
</div>
<p class="meta">
comment_date_gmt ), current_time( 'timestamp', 1 ) ) ); ?>
</p>
</li>
<?php
}
} else {
echo '<li>' . __( 'There are no notes for this order yet.', 'woocommerce' ) . '</li>';
}
echo '</ul>';
}
Comme vous pouvez le voir, ce code est assez simple, rien de vraiment complexe, vous pouvez donc facilement le personnaliser. Veuillez noter l’utilisation de quelques fonctions intéressantes comme human_time_diff(), wptexturize() ou wp_kses_post().
Eh bien, j’espère que vous avez apprécié cet article, veuillez laisser un commentaire dans le formulaire ci-dessous, j’aimerais avoir vos commentaires à ce sujet !

