WordPress发送电子邮件后,我想做些事情。例如,使用wp_mail()
功能发送“重置密码”电子邮件后。
WordPress发送电子邮件后,我想做些事情。例如,使用wp_mail()
功能发送“重置密码”电子邮件后。
Answers:
这是使用doCallback()
类中的方法激活回调的方法。
在GitHub上也有一个通过回调使用此功能的PHPMailer
测试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
钩子。
wp_mail()
可能永远不会在CF7中调用。请注意,在WPSE上,第3方插件不在此处。@AmirMousavi