Formatter tous les emails envoyés dans WordPress
Pour unifier tous les emails envoyés depuis un site WordPress, il faut utiliser plusieurs hooks parmi lesquels : wp_mail_content_type
, wp_mail_from
, wp_mail_from_name
et wp_mail
.
1 2 3 4 5 |
// on définit le type text/html pour tous les emails add_filter("wp_mail_content_type", "cdx_mail_content_type"); function cdx_mail_content_type(){ return "text/html"; } |
1 2 3 4 5 |
// on définit le même from pour tous les emails add_filter("wp_mail_from", "cdx_mail_from"); function cdx_mail_from(){ return "noreply@domain.fr"; } |
1 2 3 4 5 |
// on définit le même from name add_filter('wp_mail_from_name', 'cdx_mail_from_name'); function cdx_mail_from_name($old) { return "Mon site WP"; } |
A chaque appel de wp_mail
, nous allons insérer le header et le footer HTML de manière à former un email complet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// pour tous les emails envoyés depuis le site, on force le même header / footer add_filter('wp_mail', 'cdx_wp_mail', 10, 1); function cdx_wp_mail($data){ $modified_data = $data; $_subject = $data['subject']; $modified_data['subject'] = "Mon site WP"." - ".$_subject; $_message = cdx_mail_header($_subject); $_message .= $data['message']; $_message .= cdx_mail_footer(); $modified_data['message'] = $_message; return $modified_data; } function cdx_mail_header($subject=''){ $html = '<html> <head> <title>Mon site WP</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">'; return $html; } function cdx_mail_footer(){ $html = '</body> </html>'; return $html; } |