在发送电子邮件后做一些事情

时间:2015-06-09 作者:Ameer Mousavi

WordPress发送电子邮件后,我想做点什么。例如,在使用发送“重置密码”电子邮件后wp_mail() 作用

1 个回复
最合适的回答,由SO网友:birgire 整理而成

使用带有动作回调的PHPMailer类:

我深入研究了PHPMailer 类,并发现它支持custom action.

Here\'s 如何使用激活回调doCallback() 类中的方法。

还有一个PHPMailer test 在GitHub上通过callbackAction() 回调。

我们可以通过以下方式在WordPress中进行设置:

$phpmailer->action_function = \'wpse_mail_action\';
在哪里wpse_mail_action() 是操作回调。

下面是一个示例,我们可以如何应用这一点:

/**
 * Custom PHPMailer action callback
 */
function wpse_mail_action( $is_sent, $to, $cc, $bcc, $subject, $body, $from )
{
    do_action( \'wpse_mail_action\', $is_sent, $to, $cc, $bcc, $subject, $body, $from );
    return $is_sent; // don\'t actually need this return!
}

/**
 * Setup a custom PHPMailer action callback
 */
add_action( \'phpmailer_init\', function( $phpmailer )
{
    $phpmailer->action_function = \'wpse_mail_action\';
} );
现在我们可以访问wpse_mail_action

然后,我们可以添加自己的邮件记录器,并检查邮件是否成功发送。

示例:

下面是一个(未经测试)示例,我们可以在发送“密码重置”帖子后执行以下操作:

/**
 * Do something after the "Password Reset" post has been successfully sent:
 */
add_action( \'wpse_mail_action\', function( $is_sent, $to, $cc, $bcc, $subject, $body, $from )
{
    if( $is_sent && false !== stripos( $subject, \'Password Reset\' ) )
        // do stuff

}, 10, 7 );
我们可以添加一些进一步的限制,并在必要时包含到其他操作中,如retrieve_password

结束

相关推荐

Send email from Wordpress

在某个动作之后,从Wordpress发送电子邮件的最佳方式是什么。我在一个网站上工作,用户可以提交想法,然后其他用户可以对其发表评论。我想在发帖和发表评论时,向多个不同的地址(版主)发送电子邮件。我有这个代码来添加帖子,试图发送一封不起作用的电子邮件。<section class=\"submitForm\"> <h1>Submit idea</h1> <?php if(isset($_