Nicht jeder Kunde verursacht nur Umsatz im Online-Shop. Manche Bestellungen führen zu Zahlungsausfällen, unnötigem Supportaufwand oder sogar Betrugsversuchen. Wenn bestimmte Käufer wiederholt Probleme verursachen, kann es sinnvoll sein, diese gezielt vom Bestellprozess auszuschließen. Mit einem kleinen WooCommerce-Snippet lassen sich einzelne E-Mail-Adressen im Checkout blockieren – ganz ohne zusätzliches Plugin.
Wenn einzelne Kunden im Shop Probleme machen
Online-Shops leben von zufriedenen Kunden und reibungslosen Bestellprozessen. In der Praxis kommt es jedoch vor, dass einzelne Käufer wiederholt Schwierigkeiten verursachen. Dazu gehören zum Beispiel unbezahlte Bestellungen, Rückbuchungen oder missbräuchliche Testkäufe.
WooCommerce selbst bietet keine integrierte Möglichkeit, bestimmte Kunden direkt zu sperren. Zwar existieren verschiedene Plugins für dieses Problem, doch häufig sind diese unnötig umfangreich oder kostenpflichtig.
Eine einfache Alternative besteht darin, den Checkout-Prozess um eine kleine Prüfung zu erweitern. Dabei wird kontrolliert, ob die eingegebene E-Mail-Adresse auf einer Sperrliste steht. Ist das der Fall, kann die Bestellung direkt verhindert werden.
Der technische Ansatz: Prüfung im Checkout
WooCommerce stellt eine Vielzahl sogenannter Hooks zur Verfügung. Diese ermöglichen es, den Bestellprozess gezielt zu erweitern oder anzupassen. Für diese Lösung wird der Hook woocommerce_after_checkout_validation genutzt. Dieser wird genau in dem Moment ausgeführt, nachdem der Kunde seine Daten eingegeben hat, aber bevor die Bestellung endgültig gespeichert wird.
Das PHP-Snippet greift an dieser Stelle ein und überprüft die im Checkout eingegebene Rechnungs-E-Mail-Adresse. Befindet sich diese Adresse auf einer definierten Liste, wird eine Fehlermeldung ausgelöst und der Bestellvorgang abgebrochen. Der Kunde kann die Bestellung in diesem Fall nicht abschließen.
Dabei werden folgende Punkte berücksichtigt:
- Die Prüfung erfolgt direkt im Checkout-Prozess.
- Die Groß- und Kleinschreibung wird ignoriert.
- Stimmen E-Mail-Adresse und Sperrliste überein, wird eine Fehlermeldung angezeigt und die Bestellung nicht abgeschlossen.
PHP-Snippet zum Blockieren bestimmter E-Mail-Adressen
Der folgende Code prüft die eingegebene E-Mail-Adresse und blockiert den Bestellabschluss, wenn eine Übereinstimmung mit der Sperrliste gefunden wird.
/*
* Snippet: Käufer anhand der E-Mail-Adresse blockieren
* Getestet mit WooCommerce 10.6
*/
function woocommerce_email_blockieren( $data, $errors ) {
// Liste gesperrter E-Mail-Adressen
$blocked_emails = array('kunde@test.de','spam@example.com','problemkunde@mail.de'
);
// E-Mail aus dem Checkout auslesen
$email = strtolower( $data['billing_email'] ?? '' );
foreach ( $blocked_emails as $blocked ) {
if ( $email === strtolower( $blocked ) ) {
$errors->add(
'validation',
__( 'Es tut uns leid, wir können Ihre Bestellung nicht bearbeiten. Bitte kontaktieren Sie unseren Support.', 'woocommerce' )
);
return;
}
}
}
add_action( 'woocommerce_after_checkout_validation', 'woocommerce_email_blockieren', 10, 2 );Snippet-Code in WordPress integrieren
Damit das Snippet aktiv wird, muss es in die WordPress-Installation eingebunden werden. Dafür gibt es zwei gängige Wege.
A. Nutzung eines Snippet-Plugins
Die einfachste Variante besteht darin, ein Plugin wie Code Snippets zu verwenden. Dieses ermöglicht es, PHP-Code sicher zu verwalten, ohne Theme-Dateien direkt bearbeiten zu müssen. Nach der Installation können Sie ein neues Snippet anlegen, den Code einfügen und aktivieren.
B. Integration über FTP
Alternativ kann der Code direkt in die Datei functions.php des Child-Themes eingefügt werden. Wichtig ist, dass Änderungen ausschließlich im Child-Theme erfolgen. Änderungen am Parent-Theme würden bei einem Theme-Update verloren gehen.
E-Mail Sperrliste erweitern oder anpassen
Die Liste der blockierten E-Mail-Adressen lässt sich jederzeit erweitern. Dazu müssen lediglich weitere Einträge in das Array eingefügt werden.
$blocked_emails = array( 'kunde@test.de', 'spam@example.com', 'problemkunde@mail.de', 'weitere@mailadresse.de');
Auf diese Weise können Shopbetreiber schnell reagieren, wenn bestimmte Käufer wiederholt Probleme verursachen.
Fazit: Problematische Bestellungen gezielt verhindern
Mit wenigen Zeilen PHP-Code lässt sich WooCommerce um eine praktische Kontrollfunktion erweitern. Bestellungen von unerwünschten E-Mail-Adressen können direkt im Checkout gestoppt werden, ohne dass zusätzliche Plugins notwendig sind.
Diese Lösung ist besonders für kleinere und mittlere Shops interessant, die problematische Käufer gezielt ausschließen möchten, ohne ihre Shopstruktur unnötig zu verkomplizieren.
Möchten Sie weitere Käufer blockieren, gibt es noch andere Möglichkeiten. Beispielsweise können Sie unerwünschte Bestellungen auch anhand der Rechnungsadresse verhindern. Eine entsprechende Anleitung finden Sie im Artikel
WooCommerce Snippet: Straße und PLZ kombiniert blockieren