# Wyłączenie e-mail w WooCommerce dla bezpłatnych zamówień Życie programisty to pasmo niespodzianek. Teoretycznie myślimy, że o danej platformie wiemy już absolutnie wszystko i nagle zaskakuje nas coś co właściwie powinniśmy przewidzieć już dawno temu. **Historia pewnego klienta…** Inspiracją do tego wpisu była historia klienta, któremu stworzyłem małą platformę e-learningową opartą o WooCommerce, na której stworzono kilka bezpłatnych kursów. Głównym założeniem portalu było zbieranie Leadów od potencjalnych klientów, a kursy pozwalały łatwo segmentować klientów od początkujących po już zaawansowanych w danym temacie. Klient uruchomił szeroką akcję promocyjną, która przerosła oczekiwania i otrzymywał setki emaili z WooCommerce, które nie tylko zapchały skrzynkę, ale też w pewnym momencie zablokowały wysyłkę maili na serwerze z powodu przekroczenia limitów. ![](https://jaworowi.cz/wp-content/uploads/2016/11/wordpress-przekierowanie-z-tagu-kategorii.png) **Usunięcie ceny „Za Darmo” w WooCommerce** [Przeczytaj artykuł](https://jaworowi.cz/jak-usun-cen-za-darmo-woocommerce-wordpress-2777.php) **Czas zrozumieć problem…** WooCommerce już taki jest – wysyła maile do klienta i to, aż dwa – potwierdzenie zamówienia i założenie konta, a informacje o zamówieniu otrzymuje też administrator. Oznacza to, że każde zamówienie generuje trzy maile, które w zasadzie (poza mailem do klienta i to nie zawsze) są absolutnie zbędne. Oczywiście możemy w WooCommerce wyłączyć ten email poprzez opcje powiadomień emailowych, ale w przypadku gdy mamy też produkty płatne może okazać się to niekoniecznie dobym rozwiązaniem i stąd dzisiejszy wpis. ## **Wyłączenie wysyłania e-maila o otrzymaniu bezpłatnego zamówienia w WooCommerce do Administratora ** Dodaj ten kod do pliku functions.php najlepiej motywu potomnego lub wtyczki funkcyjnej. Zobacz Również: [Jak dodać własne kody PHP, JS, CSS i funkcje w WordPress?](https://jaworowi.cz/wlasne-kody-wordpress-16834.php) Funkcja wyłączy wysyłanie wiadomości e-mail do administratora z potwierdzeniem otrzymania zamówienia. `add_filter('woocommerce_email_enabled_new_order', function($enabled, $order) { if ($order instanceof WC_Order) { $order_total = floatval($order->get_total()); if ($order_total == 0) { return false; } } return $enabled; }, 10, 2);` ## **Wyłączenie wysyłania potwierdzenie otrzymania bezpłatnego zamówienia dla klienta ** W moim przypadku blokada była zasadna ponieważ całą wysyłkę emailową obsługiwał system Marketing Automation i nie potrzebowałem dodatkowych wiadomości od WooCommerce. W tym celu aplikujemy swoją funkcję jako filtr do hooka – *woocommerce_email_recipient_customer_completed_order*. `add_filter( 'woocommerce_email_recipient_customer_completed_order', 'jcz_bezmaila_woo_zerozl', 10, 2 ); function jcz_bezmaila_woo_zerozl( $recipient, $order ) { $page = $_GET['page'] = isset( $_GET['page'] ) ? $_GET['page'] : ''; if ( 'wc-settings' === $page ) { return $recipient; } if ( (float) $order->get_total() === '0.00' ) $recipient = ''; return $recipient; }` Tym oto sposobem zbędne dwie wiadomości nie będą już wysyłanie ani do Ciebie, ani do klienta.