Existe-t-il une vérification conditionnelle que je peux exécuter pour phpmailer_init
ou un paramètre wp_mail
qui me permet d'appliquer mes paramètres SMTP phpmailer_init
personnalisés uniquement à des actions wp_mail
spécifiques ou est-ce que phpmailer_init
est toujours exécuté à l'échelle du site?
phpmailer_init
sera toujours déclenché pour chaque appel wp_mail()
- cependant, vous pouvez le raccrocher/le décrocher de manière conditionnelle comme ceci:
function wpse_224496_phpmailer_init( $phpmailer ) {
// SMTP setup
// Always remove self at the end
remove_action( 'phpmailer_init', __function__ );
}
function wpse_224496_wp_mail( $mail ) {
// Example: only SMTP for emails addressed to [email protected]
if ( $mail['to'] === '[email protected]' )
add_action( 'phpmailer_init', 'wpse_224496_phpmailer_init' );
// Example: only SMTP for subject "Foo"
if ( $mail['subject'] === 'Foo' )
add_action( 'phpmailer_init', 'wpse_224496_phpmailer_init' );
// Other properties
$mail['message'];
$mail['headers']; // Could be string or array
$mail['attachments']; // Could be string or array
return $mail;
}
add_filter( 'wp_mail', 'wpse_224496_wp_mail' );