WordPress bir e-posta gönderdikten sonra bir şey yapmak istiyorum. Örneğin, wp_mail()işlevi kullanarak "Parolayı Sıfırla" e-postası gönderdikten sonra .
WordPress bir e-posta gönderdikten sonra bir şey yapmak istiyorum. Örneğin, wp_mail()işlevi kullanarak "Parolayı Sıfırla" e-postası gönderdikten sonra .
Yanıtlar:
PHPMailerSınıfa biraz kazma yaptım ve özel bir eylemi desteklediğini buldum .
İşte geri arama ile aktive nasıl doCallback()sınıfta yöntemle.
GitHub'da bu özelliği geri arama ile kullanarak da bir PHPMailer test var callbackAction().
WordPress ile aşağıdakileri kurabiliriz:
$phpmailer->action_function = 'wpse_mail_action';
wpse_mail_action()eylem geri çağırma nerede .
İşte bunu nasıl uygulayabileceğimize bir örnek:
/**
* 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';
} );
Şimdi wpse_mail_actionkancaya erişebiliyoruz .
Daha sonra kendi posta kaydedicimizi ekleyebilir ve postaların başarıyla gönderilip gönderilmediğini kontrol edebiliriz.
"Parola Sıfırlama" gönderileri gönderildikten sonra bir şeyi nasıl yapabileceğimizi gösteren (denenmemiş) bir örnek:
/**
* 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 );
daha fazla kısıtlama ekleyebilir ve gerektiğinde retrieve_passwordkanca gibi diğer eylemlere girebiliriz .
wp_mail()gösterebilir ve bu nedenle CF7 içinde asla çağrılamaz. Üçüncü taraf eklentilerin WPSE'de burada konu dışı olduğunu unutmayın. @AmirMousavi