Email notificaties opzetten in WordPress

Transactionele emails zijn eenmalige berichten die getriggerd worden door een actie van een gebruiker, en vervolgens naar een specifiek emailadres worden gestuurd. Denk bijvoorbeeld aan een gebruiker die zich op een website registreert en vervolgens een email krijgt. Of aan de notificatie die je krijgt wanneer iemand een reactie achterlaat op één van je blogpost. Deze email notificaties zijn gemakkelijk in te stellen in WordPress, namelijk door gebruik te maken van de functie wp_mail(). In dit artikel leggen we uit hoe dat in zijn werk gaat.

Over wp_mail()

De wp_mail() functie stelt je in staat om op een flexibele manier emails te versturen, door een aantal relevante parameters te specificeren.
Laten we eens kijken naar het volgende voorbeeld:

$to: hier specificeer je het emailadres van de ontvanger.
$subject: hier komt het onderwerp van de email te staan.
$message: hier typ je het bericht.
$headers: hier kun je de titels in de mail aangeven.
$attachments: eventuele bijlagen van de email kun je hier specificeren.

Voor een simpele email notificatie met alleen wat tekst hoef je in principe alleen maar de eerste drie parameters te specificeren:

<?php

$to = ‘mijnnaam@email.nl’;

$subject = ‘Je artikel is geplaatst’;

$message = ‘Bedankt voor je bijdrage. We hebben je artikel op onze website geplaatst.’;

wp_mail( $to, $subject, $message );

?>

HTML emails versturen

In plaats van een simpel tekstberichtje kun je ook een volledige HTML email versturen met wp_mail(). Dit kun je doen door de wp_mail_content_type toe te voegen aan je functions.php bestand:

function set_mail_html_content_type() {
return ‘text/html’;
}

$to = ‘mijnnaam@email.nl’;

$subject = ‘Bedankt voor je bijdrage’;

$message = ‘Bedankt voor je bijdrage. We hebben je artikel op onze website geplaatst.’;

add_filter( ‘wp_mail_content_type’, ‘set_mail_html_content_type’ );
wp_mail( $to, $subject, $message );
remove_filter( ‘wp_mail_content_type’, ‘set_mail_html_content_type’ );

Zoals je ziet hebben we een filter toegevoegd. Daarna wordt de email verstuurd, en daarna wordt het filter weer verwijderd. Dit hebben we gedaan om ervoor te zorgen dat de default WordPress emails gewoon blijven werken.

Het triggeren van email notificaties

Goed, laten we nu eens kijken naar hoe we die email notificaties kunnen triggeren. Om verder te gaan met ons voorbeeld, gebruiken we publish_post. Publish_post zorgt ervoor dat er een actie (in dit geval dus het versturen van een email) wordt getriggerd wanneer een artikel wordt gepubliceerd.

De code komt er dan als volgt uit te zien:

function set_mail_html_content_type() {

return ‘text/html’;

}

add_action( ‘publish_post’, ‘author_publish_notice’, 10 ,2 );

function author_publish_notice( $ID, $post ) {

if( ‘post’ == $post->post_type ) {

return;

}

$to = ‘mijnnaam@email.nl’;

$subject = ‘Bedankt voor je bijdrage’;

$message = ‘<h1> Bedankt voor je bijdrage.</h1> <p> We hebben je artikel op onze website geplaatst.</h1></p> <p><a href=”‘ . get_permalink( $ID ) . ‘”>’ . $post->post_title . ‘</a></p>’;

add_filter( ‘wp_mail_content_type’, ‘set_mail_html_content_type’ );

wp_mail( $to, $subject, $message );

remove_filter( ‘wp_mail_content_type’, ‘set_mail_html_content_type’ );

}

Tot slot

Er zijn eindeloos veel mogelijkheden als het aankomt op het versturen van email notificaties in WordPress. Hou er echter wel rekening mee dat je server waarschijnlijk niet geconfigureerd is om honderden email notificaties te versturen. Je loopt dan het risico om geblokkeerd te worden. Als je echt veel emails moet versturen, verzeker jezelf er dan van dat je server dit aankan en neem bij twijfel contact op met je host.

Geef een reactie