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.

Usunięcie ceny „Za Darmo” w WooCommerce

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.

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.

Oceń ten artykuł jako pierwszy

Na stronie mogą znajdować się linki polecające (affiliacyjne), które pozwalają utrzymać bloga. Zakup z mojego polecenia nie generuje dla Ciebie dodatkowych kosztów, a ja otrzymam prowizje od kwoty zapłaconej.

Przyłącz się do dyskusji

Bądź na bieżąco

Newsy i promocje - Marketing & WordPress

Maksymalnie trzy wiadomości w miesiącu dopasowane do Ciebie. Polityka Prywatności dostępna jest tutaj. Dla każdego subskrybenta prezent niespodzianka.

Dziękuję za zapis.

Niebawem przyjdzie do Ciebie mail powitalny. Twoja darmowa godzina na pracę w #WordPress została aktywowana.