Wyłączenie e-mail w WooCommerce dla bezpłatnych zamówień

Woocommerce Naprawa

Ż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
dHosting najlepszy serwer dla wordpress i nie tylko

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

[elementor-element k="db47d93de8cdcb51dcf9573fc222d92b" data="eyJpZCI6ImVmYjQ5ZGMiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJibG9nX25hbWUiOiIiLCJibG9nX2Rlc2NyaXB0aW9uIjoiIiwiX2VsZW1lbnRfd2lkdGgiOiJhdXRvIiwidGl0bGUiOiJhc2QiLCJfZWxlbWVudF92ZXJ0aWNhbF9hbGlnbiI6ImNlbnRlciIsIndpZHRoIjp7InVuaXQiOiJweCIsInNpemUiOjI5OSwic2l6ZXMiOltdfSwiaGVpZ2h0Ijp7InVuaXQiOiJweCIsInNpemUiOjcxLCJzaXplcyI6W119LCJhbGlnbiI6ImNlbnRlciIsIm9iamVjdF9maXQiOiJjb250YWluIiwid2lkdGhfbW9iaWxlIjp7InVuaXQiOiJweCIsInNpemUiOjE2MCwic2l6ZXMiOltdfSwiaGVpZ2h0X21vYmlsZSI6eyJ1bml0IjoicHgiLCJzaXplIjozNSwic2l6ZXMiOltdfSwiYWxpZ25fbW9iaWxlIjoibGVmdCIsInJleV9pbmxpbmVfaG9yaXpvbnRhbF9hbGlnbl9tb2JpbGUiOiJsZWZ0IiwiY3VzdG9tIjoieWVzIiwibG9nbyI6eyJ1cmwiOiJodHRwczpcL1wvamF3b3Jvd2kuY3pcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMTdcLzEwXC9sb2dvLTI5OS10cmFuc3BhcmVudC0yMi0xLnBuZyIsImlkIjo4MDk0LCJzaXplIjoiIiwiYWx0IjoiSmFrdWIgSmF3b3Jvd2ljeiBcdTIwMTMgUHJvZ3JhbWlzdGEgV29yZFByZXNzIGkgTWFya2V0aW5nIGludGVybmV0b3d5Iiwic291cmNlIjoibGlicmFyeSJ9fSwiZWxlbWVudHMiOltdLCJ3aWRnZXRUeXBlIjoicmV5Y29yZS1oZWFkZXItbG9nbyJ9"][elementor-element k="db47d93de8cdcb51dcf9573fc222d92b" data="eyJpZCI6ImE3NmE1YjkiLCJlbFR5cGUiOiJ3aWRnZXQiLCJzZXR0aW5ncyI6eyJfbWFyZ2luIjp7InVuaXQiOiJweCIsInRvcCI6IjAiLCJyaWdodCI6IjAiLCJib3R0b20iOiIwIiwibGVmdCI6IjQwIiwiaXNMaW5rZWQiOmZhbHNlfSwiX2VsZW1lbnRfd2lkdGgiOiJhdXRvIiwiX2VsZW1lbnRfdmVydGljYWxfYWxpZ24iOiJjZW50ZXIiLCJyZXlfaW5saW5lX2hvcml6b250YWxfYWxpZ24iOiJsZWZ0IiwiYnJlYWtwb2ludCI6IiIsInR5cG9ncmFwaHlfZm9udF9mYW1pbHkiOiJFeG8gMiIsInR5cG9ncmFwaHlfZm9udF93ZWlnaHQiOiIzMDAiLCJyZXlfaW5saW5lX2hvcml6b250YWxfYWxpZ25fdGFibGV0IjoibGVmdCIsInJleV9pbmxpbmVfaG9yaXpvbnRhbF9hbGlnbl9tb2JpbGUiOiJyaWdodCIsImN1c3RvbSI6InllcyIsInNvY2lhbF9pY29uX2xpc3QiOltdLCJzb2NpYWxfdGV4dCI6IkZPTExPVyBVUyIsInN0eWxlIjoidWxyIC0tdGhpbm5lciIsIm1vYmlsZV9wYW5lbF9kaXNhYmxlX2Zvb3RlciI6InllcyIsIm1vYmlsZV9wYW5lbF9kaXNhYmxlX21lZ2FfZ3MiOiItLWRpc2FibGUtbWVnYS1ncyIsInR5cG9ncmFwaHlfdHlwb2dyYXBoeSI6ImN1c3RvbSIsInR5cG9ncmFwaHlfZm9udF9zaXplIjp7InVuaXQiOiJweCIsInNpemUiOjE4LCJzaXplcyI6W119LCJ0eXBvZ3JhcGh5X2xpbmVfaGVpZ2h0Ijp7InVuaXQiOiJweCIsInNpemUiOjI1LjIsInNpemVzIjpbXX0sInR5cG9ncmFwaHlfd29yZF9zcGFjaW5nIjp7InVuaXQiOiJlbSIsInNpemUiOiIiLCJzaXplcyI6W119LCJ0eXBvZ3JhcGh5X3N1Yl90eXBvZ3JhcGh5IjoiY3VzdG9tIiwidHlwb2dyYXBoeV9zdWJfZm9udF9zaXplIjp7InVuaXQiOiJweCIsInNpemUiOjE4LCJzaXplcyI6W119LCJ0eXBvZ3JhcGh5X3N1Yl9mb250X3dlaWdodCI6IjMwMCIsInR5cG9ncmFwaHlfc3ViX2xpbmVfaGVpZ2h0Ijp7InVuaXQiOiJweCIsInNpemUiOjI1LjIsInNpemVzIjpbXX0sIm5hdl9pbmRpY2F0b3IiOiJhcnJvdzIiLCJfX2dsb2JhbHNfXyI6eyJ0eXBvZ3JhcGh5X3R5cG9ncmFwaHkiOiIiLCJiZ19jb2xvcl9zdWJtZW51cyI6Imdsb2JhbHNcL2NvbG9ycz9pZD0zZGE3YWUyIn0sIl9tYXJnaW5fbW9iaWxlIjp7InVuaXQiOiJweCIsInRvcCI6IjAiLCJyaWdodCI6IjAiLCJib3R0b20iOiIwIiwibGVmdCI6IjIwIiwiaXNMaW5rZWQiOmZhbHNlfX0sImVsZW1lbnRzIjpbXSwid2lkZ2V0VHlwZSI6InJleWNvcmUtaGVhZGVyLW5hdmlnYXRpb24ifQ=="]