Como usar as configurações de SMTP ‘phpmailer_init’ apenas em certas ações do ‘wp_mail’?

Existe uma verificação condicional que posso executar para phpmailer_init ou um parâmetro wp_mail que me permite aplicar minhas configurações de SMTP personalizadas phpmailer_init apenas em ações específicas do wp_mail ou o phpmailer_init sempre é executado no site?

Solutions Collecting From Web of "Como usar as configurações de SMTP ‘phpmailer_init’ apenas em certas ações do ‘wp_mail’?"

phpmailer_init sempre triggersrá para cada wp_mail() , no entanto, você pode conectá-lo / desativá-lo de forma condicional assim:

 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 foo@example.com if ( $mail['to'] === 'foo@example.com' ) 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' );