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:
PHPMailer
Sı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_action
kancaya 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_password
kanca 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