Es gibt nichts Besseres, als Informationen zu einer von Ihnen getätigten Bestellung über den Status oder andere Daten zu haben, die Sie in Bezug auf Ihre Bestellung nützlich finden. Standardmäßig speichert WooCommerce jede Aktion, die mit einer Bestellung verknüpft ist, in der Datenbank. Diese Reihe von Aktionen ist in der Administration in der Seitenleiste verfügbar, wenn Sie eine Bestellung bearbeiten. Ihre Kunden haben jedoch keinen Zugriff auf diese Aktionsliste. Die gute Nachricht ist, dass Sie es ganz einfach zu jeder von WooCommerce gesendeten E-Mail hinzufügen können. In diesem Beitrag zeige ich Ihnen, wie Sie die vollständige E-Mail (die E-Mail, die gesendet wird, wenn der Bestellstatus als abgeschlossen markiert ist) hinzufügen, um die Bestellnotizen hinzuzufügen. Sie können diese Methode jedoch verwenden, um die Bestellnotizen auch anderen E-Mails hinzuzufügen.
Benutzerdefinierte Vorlagen oder Hooks?
Nur eine kurze Erinnerung: Alle E-Mails in WooCommerce werden mit Vorlagen bereitgestellt, und Sie können Standardvorlagen überschreiben, indem Sie Ihre eigenen Vorlagen erstellen. Grundsätzlich können Sie mit einer benutzerdefinierten Vorlage WooCommerce-Standarddateien überschreiben und stattdessen Ihre eigenen benutzerdefinierten Dateien verwenden. Hier ist ein kurzes Tutorial, das Ihnen erklärt, wie Sie Ihre benutzerdefinierten Vorlagen erstellen: http://docs.woothemes.com/document/template-structure/.
Sie können die Bestellnotizen innerhalb einer benutzerdefinierten Vorlage hinzufügen, aber ich möchte Ihnen eine andere Möglichkeit zeigen, indem Sie einen Haken verwenden. Die Idee ist, keine benutzerdefinierten Vorlagen zu verwenden, sondern nur die Datei functions.php in Ihrem Themenordner zu verwenden.
Bestellnotizen sind WordPress-Kommentare
Bestellnotizen sind WordPress-Kommentare mit einem bestimmten Typ „order_note“, sodass Sie die WordPress-WP_Query-Klasse verwenden können, die mit der Funktion get_comments() auf Kommentare angewendet wird.
Der Hook, den wir verwenden müssen, ist eine Aktion namens „woocommerce_email_order_meta“. Die Idee ist, eine benutzerdefinierte Funktion aufzurufen, wenn diese Aktion im WooCommerce-Prozess geladen wird.
Die Verwendung von get_comments() vereinfacht die Art und Weise, wie wir die Bestellnotizen abrufen können. Wir müssen nur sicherstellen, dass wir die mit einer bestimmten Bestellung verknüpften Kommentare mit der Post-ID und dem Kommentarattribut „genehmigen“ auflisten möchten, was bedeutet, dass der Kommentar validiert wird (in diesem Fall von WooCommerce).
Der Code
Hier ist der Code, der in die Datei functions.php in Ihrem Theme-Ordner eingefügt werden muss:
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>';
}
Wie Sie sehen, ist dieser Code ziemlich einfach und nicht wirklich komplex, sodass Sie ihn leicht anpassen können. Bitte beachten Sie die Verwendung einiger netter Funktionen wie human_time_diff(), wptexturize() oder wp_kses_post().
Nun, ich hoffe, dieser Beitrag hat Ihnen gefallen, hinterlassen Sie bitte einen Kommentar im untenstehenden Formular, ich würde mich über Ihr Feedback dazu freuen!