phpmailer_init
またはwp_mail
パラメータに対して実行できる条件付きチェックはありますか。それにより、特定のphpmailer_init
アクションにのみ私のカスタムwp_mail
SMTP設定を適用できますか、それともphpmailer_init
は常にサイト全体で実行されますか。
phpmailer_init
は常にすべてのwp_mail()
呼び出しに対して起動します - ただし、以下のように条件付きでフック/フック解除することができます。
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' );