Envato Elements - pobierasz co chcesz, ile chcesz

Na jednej ze stron, którą się opiekuje (WordPress, bo tych mam „pod sobą” najwięcej) pojawiła się tymczasowa potrzeba przesyłania kopii (BCC/UDW, czyli ukrytej) wszystkich wysyłanych wiadomości e-mail na kontrolny adres. Zresztą sama przyczyna nie jest istotna, ważne jak można to w prosty sposób zrobić.

Kopia wszystkich widmowości e-mail na wybrany adres

Ten konkretny WordPress wysyła wszystkie wiadomości za pośrednictwem serwisu/usługi SparkPost, co jest realizowane przez ich formową wtyczkę, która niestety na obecną chwilę nie posiada takiej opcji. I choć można to obejść korzystając z szablonów lub wbudowanych haków, to lepszym rozwiązaniem (mniej pracy/nauki dla mnie) wydało mi się skorzystanie z filtra „wp_mail”, który jest dostępny bezpośrednio w WordPressie.

Pierwszy odruch, to kod jak najbardziej prosty – bo w końcu i zadanie przed nim niezbyt skomplikowane (dodajemy go do pliku functions.php lub tworzymy własną wtyczkę):

function webinsider_wp_mail( $mail ) {   $mail['headers'] = 'BCC: jakiś@adres.email \r\n';   return $mail;  }  add_filter( 'wp_mail', 'webinsider_wp_mail', 10, 1 );

Jest to rozwiązanie bardzo proste, ale skuteczne. Ma tylko jeden „malutki” problem – rozsypuje wiadomości wysyłane w HTMLu (te napisane w czystym tekście są wysyłane prawidłowo).

W takim razie postanowiłem trochę zmodyfikować powyższy kod, tak by również wiadomości napisane w HTMLu po modyfikacji nagłówka wyświetlały się poprawnie :

function webinsider_wp_mail( $mail ) {   $bcc_address = sanitize_email( 'jakiś@adres.email' );   $mail['headers'][] = 'BCC: ' . $bcc_address;   return $mail;  }  add_filter( 'wp_mail', 'webinsider_wp_mail', 10, 1 );

I teoretycznie wszystko powinno być OK, ale… Nie zawsze, więc dla pewności warto kod rozbudować jeszcze o warunek związany z tabelą:

function webinsider_wp_mail( $mail ) {   $bcc_address = sanitize_email( 'jakiś@adres.email' );     if ( is_array( $mail['headers'] ) ) {   $mail['headers'][] = 'BCC: ' . $bcc_address;   } else {   $mail['headers'] = $mail['headers'] . 'BCC: ' . $bcc_address . "\r\n";   }     return $mail;  }  add_filter( 'wp_mail', 'webinsider_wp_mail', 10, 1 );

Teoretycznie można by przyjąć, że zazwyczaj będzie nagłówków więcej, ale na wszelki wypadek – a na pewno nie zaszkodzi… ;-)

Oczywiście powyższy kod nie zadziała w sytuacji, gdy jakaś wtyczka/usługa na Waszej stronie korzysta z własnych ustawień związanych z wysyłką wiadomości e-mail (za pośrednictwem zewnętrznego serwera SMTP), pomijając standardową funkcję WordPressa. No i powyższy kod nie musi ograniczać się – tak jak w tym przypadku – do dodania nagłówka/adresu BCC – wszystko zależy od potrzeb.

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Roztańczona Karolina skorzystała z promocji dla czytelników WebInsider.pl i zapłaciła 80% mniej za księgowość internetową wFirma
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Monika ćwiczy przed kongresem ko..., ale jej też należy się zniżka 80% na skięgowość wFirma dla oglądających WebInsider.pl