답변:
나는 PHPMailer
수업에 파고 들었고 그것이 커스텀 액션을 지원한다는 것을 알았다 .
다음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에서 다루지 않습니다. @AmirMousavi