我正在开发一个wordpress插件,我需要拦截wp_mail函数“从另一个插件执行”并在其标题中添加一个附件文件,指向正确的方向,我可以从我的自定义插件拦截此调用。
执行wp_mail函数的代码
$message = apply_filters( 'frm_email_message', $message, $atts );
$header = apply_filters('frm_email_header', $header, array(
'to_email' => $atts['to_email'], 'subject' => $atts['subject'],
) );
$sent = wp_mail($recipient, $atts['subject'], $message, $header, $atts['attachments']);
if ( ! $sent ) {
$header = 'From: '. $atts['from'] ."\r\n";
$recipient = implode(',', (array) $recipient);
$sent = mail($recipient, $atts['subject'], $message, $header);
}
我想我找到了解决方案以防其他人也在寻找这个问题。 来自wordpress codex:https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_mail
add_filter( 'wp_mail', 'my_wp_mail_filter' );
function my_wp_mail_filter( $args ) {
$new_wp_mail = array(
'to' => $args['to'],
'subject' => $args['subject'],
'message' => $args['message'],
'headers' => $args['headers'],
'attachments' => $args['attachments'],
);
return $new_wp_mail;
}
上述解决方案似乎无效。