Mit WooCommerce Transactional E-Mails versenden

3. Februar 2017 Category: WooCommerce

WooCommerce 2.x bringt mit WC_Emails eine klassenbasierte E-Mail Implementation mit, um einfache Transactional- oder Template-E-Mails zu versenden. Man findet die Klasse unter wp-content/plugins/woocommerce/includes/class-wc-emails.php.

In folgendem Beispiel wird erklärt, wie es z.B. möglich ist mit Hilfe dieser Klasse z.B. Tracking E-Mails, z.B. über einen externen Cronjob zu versenden.

1. Zuerst sollte die Klasse angelegt werden. Diese erweitert die WC_Emails Klasse.

2. Anschliessend kann eine neue Datei angelegt werden (in meinem Fall woocommerce_tracking_email.php).

Diese Datei inkludiert wp-blog-header.php der WordPress Installation auf der WooCommerce installiert ist (der Pfad muss entsprechend angepasst werden). In meinem Fall hab ich die Datei ein einem Unterverzeichnis /cron des Themes (sprich: wp-content/themes/mein-theme/cron) angelegt. Das hat den Vorteil, dass diese Dateien bei einem Backup der Templates eingeschlossen werden. Ausserdem inkludieren wir die Datei der eben erstellen Klasse (class-email.php).

Da wir mit wp-blog-header.php auf die meisten Funktionen von WordPress Zugriff haben, können wir damit auch alle WooCommerce Funktionen benutzen.

$email = new Tracking_Email(); generiert nun eine neue Instanz der erstellten Klasse und generiert mit der Methode generate_message() die von mir angelegte Nachricht. wrap_message() fügt Header und Footer des WooCommerce Templates hinzu und send() versendet die Nachricht. Optional dazu kann mit add_order_note() noch eine Notiz zur Bestellung hinzugefügt werden.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn