如何拦截wp_mail函数并为其添加附件

时间:2016-02-22 13:49:44

标签: php wordpress

我正在开发一个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;
}

上述解决方案似乎无效。

0 个答案:

没有答案