Der Kunde hat bezahlt, und dann passiert nichts. Die Ware hängt beim Lieferanten, wird erst gefertigt oder das Lager kommt im Dezember nicht hinterher. Solange kein Versandetikett existiert, verschickt WooCommerce keine Sendungsnummer, und der Kunde hört nichts. Nach zehn, vierzehn Tagen fragt er nach, eröffnet bei PayPal einen Konflikt oder schreibt eine schlechte Bewertung.
Eine kurze, ehrliche E-Mail hätte das meistens verhindert. Dieser Artikel zeigt, was in so eine Nachricht gehört, wie Sie sie mit ein paar Zeilen Code automatisch verschicken, welche fertigen Werkzeuge es gibt und wann Sie unser kostenloses Plugin brauchen (und wann nicht).
Warum WooCommerce hier schweigt
WooCommerce verschickt E-Mails, wenn mit einer Bestellung etwas passiert: Sie geht ein, sie wird bezahlt, sie wird abgeschlossen. Dass zwölf Tage lang nichts passiert, ist für WooCommerce kein Ereignis. Deshalb gibt es dafür keine E-Mail, und die meisten Automatisierungs-Plugins können es auch nicht, weil sie ebenfalls auf Ereignisse warten.
Was Sie brauchen, ist eine Prüfung, die regelmäßig läuft und fragt: Welche bezahlten Bestellungen warten seit mehr als N Tagen, und bei welchen gibt es immer noch keine Sendungsnummer?
Was in die Nachricht gehört
Kurz halten, nichts versprechen, was Sie nicht wissen. Ein Muster, das Sie anpassen können:
Betreff: Ihre Bestellung 1234: es dauert etwas länger
Guten Tag Frau Muster,
vielen Dank für Ihre Bestellung 1234 vom 2. November. Ihre Zahlung ist bei uns eingegangen, die Ware ist aber noch nicht versandt. Es dauert länger als geplant, das tut uns leid.
Sobald das Paket unterwegs ist, bekommen Sie von uns die Sendungsnummer. Wenn Sie Fragen haben oder nicht länger warten möchten, antworten Sie einfach auf diese E-Mail.
Freundliche Grüße Ihr Team von Beispielshop
Ein paar Erfahrungswerte dazu:
- Nennen Sie einen neuen Termin nur, wenn Sie ihn kennen. Ein zweites gebrochenes Datum ärgert mehr als keines.
- Die Antwortadresse sollte bei einem Menschen ankommen, nicht bei
noreply@. - Ein Gutschein als Entschuldigung kann nett sein. Ob eine Nachricht mit Gutschein noch eine reine Service-Nachricht ist, klären Sie aber besser vorher.
Weg 1: Code, ohne Plugin
Das folgende Snippet läuft einmal am Tag über den Action Scheduler, den WooCommerce mitbringt. Es sucht Bestellungen im Status „In Bearbeitung“, die vor mehr als zehn Tagen bezahlt wurden, und schickt jedem dieser Kunden genau einmal eine E-Mail im Layout Ihrer WooCommerce-Mails. Bestellungen mit Sendungsnummer, Abholung im Geschäft und ohne Versand lässt es aus.
Ungetestet. Bitte vor dem Einsatz auf einer Testseite ausführen, mit einer echten bezahlten Testbestellung, deren Zahlungsdatum Sie zurückdatieren.
Fügen Sie den Code in die functions.php Ihres Child-Themes ein oder in ein Plugin für
Code-Schnipsel:
/**
* Lieferverzögerung: Kunden einmalig informieren, wenn eine bezahlte Bestellung
* nach X Tagen noch keine Sendungsnummer hat.
* UNGETESTET – vor dem Einsatz auf einer Testseite ausführen.
*/
const MEINSHOP_VERZUG_TAGE = 10; // Tage nach der Zahlung
const MEINSHOP_VERZUG_START = '2026-11-01'; // nur Bestellungen, die ab diesem Tag bezahlt wurden
const MEINSHOP_VERZUG_META = '_meinshop_verzug_mail';
// Einmal täglich prüfen. Der Action Scheduler gehört zu WooCommerce.
add_action( 'init', function () {
if ( function_exists( 'as_has_scheduled_action' )
&& ! as_has_scheduled_action( 'meinshop_verzug_check' ) ) {
// "tomorrow 06:00" gilt in UTC.
as_schedule_recurring_action( strtotime( 'tomorrow 06:00' ), DAY_IN_SECONDS, 'meinshop_verzug_check', array(), 'meinshop' );
}
} );
add_action( 'meinshop_verzug_check', 'meinshop_verzug_check' );
function meinshop_verzug_check() {
$von = strtotime( MEINSHOP_VERZUG_START );
$bis = time() - MEINSHOP_VERZUG_TAGE * DAY_IN_SECONDS;
if ( $bis <= $von ) {
return;
}
$order_ids = wc_get_orders( array(
'status' => array( 'processing' ),
'date_paid' => $von . '...' . $bis, // bezahlt zwischen Start und vor X Tagen
'limit' => -1,
'return' => 'ids',
) );
foreach ( $order_ids as $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order || $order->get_meta( MEINSHOP_VERZUG_META ) ) {
continue; // schon informiert
}
if ( ! $order->get_billing_email() ) {
continue;
}
// Ohne Versand oder mit Abholung: keine Verzögerungs-Mail.
if ( ! $order->get_shipping_methods()
|| $order->has_shipping_method( 'local_pickup' )
|| $order->has_shipping_method( 'pickup_location' ) ) {
continue;
}
// Sendungsnummer vorhanden? Dieser Schlüssel gilt für Advanced Shipment Tracking
// und WooCommerce Shipment Tracking. Andere Plugins: Schlüssel anpassen.
if ( $order->get_meta( '_wc_shipment_tracking_items' ) ) {
continue;
}
meinshop_verzug_mail( $order );
}
}
function meinshop_verzug_mail( WC_Order $order ) {
$mailer = WC()->mailer();
$subject = sprintf( 'Ihre Bestellung %s: es dauert etwas länger', $order->get_order_number() );
$heading = 'Ihre Bestellung braucht etwas länger';
$text = sprintf(
'<p>Guten Tag %1$s,</p>'
. '<p>vielen Dank für Ihre Bestellung %2$s vom %3$s. Ihre Zahlung ist eingegangen, '
. 'die Ware ist aber noch nicht versandt. Es dauert länger als geplant, das tut uns leid.</p>'
. '<p>Sobald das Paket unterwegs ist, bekommen Sie die Sendungsnummer. '
. 'Bei Fragen antworten Sie einfach auf diese E-Mail.</p>',
esc_html( $order->get_billing_first_name() ),
esc_html( $order->get_order_number() ),
esc_html( wc_format_datetime( $order->get_date_created() ) )
);
$sent = $mailer->send( $order->get_billing_email(), $subject, $mailer->wrap_message( $heading, $text ) );
if ( $sent ) {
$order->update_meta_data( MEINSHOP_VERZUG_META, time() );
$order->save();
$order->add_order_note( 'Hinweis auf Lieferverzögerung an den Kunden gesendet.' );
}
}
Was Sie anpassen müssen:
MEINSHOP_VERZUG_STARTauf den Tag, an dem Sie das Snippet aktivieren. Ohne dieses Datum bekäme beim ersten Lauf jeder Kunde mit einer alten, vergessenen „In Bearbeitung“-Bestellung eine Mail.- Den Meta-Schlüssel für die Sendungsnummer, falls Sie ein anderes Tracking-Plugin verwenden. Bei Germanized bzw. Shiptastic liegen die Sendungen nicht in einem Order-Meta-Feld; dort müssten Sie die Abfrage über deren Sendungen bauen.
- Die Texte. Das Snippet schreibt sie fest in den Code; ändern können Sie sie nur dort.
Was das Snippet bewusst nicht macht: eine zweite Erinnerung, eine Info an Ihr Team, eine Vorschau, wer morgen eine Mail bekäme, und eine Begrenzung bei sehr vielen Bestellungen. Für einen kleinen Shop reicht das oft. Wenn Sie mehr brauchen, wird aus dem Snippet schnell ein kleines Plugin.
Weg 2: Werkzeuge, die Sie vielleicht schon haben
Preise vom 14.10.2026, jeweils von der Seite des Anbieters.
Klaviyo. Wer Klaviyo schon nutzt, kann einen Flow bauen: nach der Bestellung eine Wartezeit, dann eine Abzweigung „Fulfilled Order null Mal seit Start des Flows“, und nur auf diesem Zweig die Entschuldigung. So hat es ein ehemaliger Klaviyo-Mitarbeiter 2022 in der Klaviyo-Community beschrieben. Ob das „Fulfilled“-Ereignis bei Ihrer WooCommerce-Anbindung zu Ihrem Versand passt, prüfen Sie am besten mit einer Testbestellung. Der Preis richtet sich nach der Zahl Ihrer aktiven Kontakte und der E-Mails pro Monat (Preisseite).
Order Status & Tracking Emails for WooCommerce (kostenlos). Das Plugin kann eine verzögerte E-Mail verschicken, wenn eine Bestellung in einen Status wechselt, mit den Bedingungen „bezahlt“ und „keine Sendungsnummer“ (Plugin-Seite). Es erkennt aber nur Sendungsnummern, die Sie in seinen eigenen Feldern eintragen. Wenn Sie Ihre Sendungsnummern ohnehin dort pflegen, ist das ein brauchbarer kostenloser Weg.
Weitere kostenlose Plugins gehen das Thema anders an: Track Orders for WooCommerce mailt, wenn ein von Hand eingetragenes Lieferdatum überschritten ist. Bestellungen ohne eingetragenes Datum prüft es nicht. Delayed Order Processing Notice schickt eine E-Mail, wenn eine Bestellung länger als eine eingestellte Stundenzahl „In Bearbeitung“ ist, ohne auf Sendungsnummern zu achten. OrderCarry meldet „hängende“ Bestellungen nach der Zeit in einem Status, gedacht vor allem als Hinweis an Ihr Team; eine Automatisierung ist kostenlos.
Kostenpflichtige Erweiterungen. AutomateWoo (142 € pro Jahr) startet Workflows bei Ereignissen wie einem Statuswechsel. Eine Auslösung „X Tage ohne Sendungsnummer“ haben wir in der Liste der Auslöser nicht gefunden. Tracking-Erweiterungen wie WooCommerce Shipment Tracking (53 € pro Jahr) oder Advanced Shipment Tracking Pro (129 $ pro Jahr) informieren, sobald versendet wurde. Für die Zeit davor haben wir bei ihnen keine Funktion gefunden.
Weg 3: unser Plugin
Offenlegung: Das folgende Plugin haben wir bei Opuswerk geschrieben.
Opuswerk Delivery Delay Notices for WooCommerce ist kostenlos und macht genau eine Sache. Jeden Morgen prüft es bezahlte Bestellungen, die noch auf den Versand warten. Hat eine Bestellung 12 Tage nach der Zahlung keine Sendungsnummer, bekommt der Kunde einen ersten Hinweis, 7 Tage später einen zweiten, und noch einmal 7 Tage später bekommt Ihr Team eine Erinnerung, sich beim Kunden zu melden. Alle drei Zahlen stellen Sie selbst ein.
Gegenüber dem Snippet oben bringt es mit:
- Es liest die Sendungsnummern von Advanced Shipment Tracking, WooCommerce Shipment Tracking und Shiptastic (die Sendungen von Germanized) oder aus einem Meta-Feld Ihrer Wahl. Ohne Tracking-Plugin gilt eine Bestellung als versendet, sobald sie den Status „In Bearbeitung“ bzw. „In Wartestellung“ verlässt.
- Alte Bestellungen bleiben außen vor: Es zählen nur Bestellungen, die nach der Aktivierung bezahlt wurden.
- Eine Vorschau zeigt, wer bei der nächsten Prüfung eine Mail bekäme, ohne etwas zu senden.
- Die Texte bearbeiten Sie unter WooCommerce › Einstellungen › E-Mails wie jede andere WooCommerce-Mail.
- Pro Bestellung eine Bestellnotiz für jede gesendete Mail.
Eine deutsche Übersetzung (Sie und du) ist fertig und wird über translate.wordpress.org ausgeliefert. Bis das Sprachpaket dort veröffentlicht ist, sehen Sie die englischen Texte und können die Mail-Texte in den WooCommerce-Einstellungen selbst auf Deutsch setzen.
Wann Sie es nicht brauchen: wenn Sie praktisch immer innerhalb weniger Tage versenden; wenn Sie bereits einen Klaviyo-Flow oder eine OSTE-Regel haben, die funktioniert; oder wenn Ihnen eine einzige Mail ohne Blick auf die Sendungsnummer genügt. Dann ist das Snippet oben der kleinere Eingriff.
Und rechtlich?
Dieser Artikel ist keine Rechtsberatung. Er sagt nichts darüber, ob und wann Sie Kunden über eine Verzögerung informieren müssen. Die Vorschriften, die beim Thema Lieferzeit im Onlinehandel meist genannt werden, im Wortlaut:
- § 312j Abs. 1 BGB: Der Unternehmer hat „spätestens bei Beginn des Bestellvorgangs klar und deutlich anzugeben, ob Lieferbeschränkungen bestehen und welche Zahlungsmittel akzeptiert werden.“
- Art. 246a § 1 Abs. 1 Nr. 10 EGBGB nennt unter den Informationen vor Vertragsschluss „den Termin, bis zu dem sich der Unternehmer verpflichtet, die Waren zu liefern“.
- § 475 Abs. 1 BGB: „Der Unternehmer muss die Ware in diesem Fall spätestens 30 Tage nach Vertragsschluss übergeben.“ (gemeint ist der Fall, dass keine Leistungszeit bestimmt ist)
- § 286 BGB regelt den Verzug, § 323 BGB den Rücktritt nach Fristsetzung, in Österreich § 918 ABGB den Rücktritt bei Verspätung.
Was davon für Ihren Shop gilt, klärt Ihre Rechtsberatung oder der Anbieter Ihrer Rechtstexte. Eine Verzögerungs-Mail ist in erster Linie guter Service: Der Kunde weiß Bescheid, bevor er nachfragen muss.
opuswerk entwickelt kleine WordPress-Plugins für WooCommerce-Shops, jedes für genau eine Aufgabe.