Někteří zákazníci si objednají zboží na dobírku a nepřevezmou jej. Pokud vám chtějí škodit, nebo jim nechcete posílat další zásilky, pomůže vám jednoduchý snippet, který je zablokuje.
Postup je následující – máte pole e-mailů, které chcete banovat a při zpracování pokladny je zkontrolujete a pokud tak e-mail bude, nedokončíte objednávku. Ta se ani nevytvoří, takže se vám nezkreslují statistiky, negenerují faktury a podobně.
Snippet je jednoduchý:
add_filter( 'woocommerce_before_checkout_process', 'disable_order_for_banned_user' );
function disable_order_for_banned_user() {
$banned_emails = array( 'musilekv@seznam.cz', 'musilda@musilda.cz' );
if ( !empty( $_POST['billing_email'] ) && in_array( $_POST['billing_email'], $banned_emails ) ) {
throw new Exception( __( 'Velice se omlouváme, ale máme technické problémy, pokud chcete objednat, kontaktujte nás telefonicky.', 'musilda' ) );
}
}
Výsledek:
Tento postup jsem zvolil ze dvou důvodů – kontrolovat zadaný e-mail pomocí js není na 100% jisté a když zákazníkovi ukáži technickou chybu, tak si nemůže stěžovat, že banuji konkrétně jeho.