retrieve_password_message не работает, поскольку я использую для сообщения о возврате пароля

#wordpress

#wordpress

Вопрос:

Я использовал приведенный ниже код. Но это не работает.

 function site_change_password_mail_message( $message, $key ) {
$message = __( 'Hi ###USERNAME###,

This notice confirms that your password was changed on JDRF. If you did not change your password, please
contact JDRF Support at siteurl.com/inquiry. This email has been sent to ###EMAIL###.

Regards,
All at siteurl.com
[Application Homepage, ex. ###SITEURL###]');
return $message;
}
add_filter( 'retrieve_password_message', 'site_change_password_mail_message', 10, 3 );
  

Должен ли я это изменить? Я все еще получаю это сообщение.

 Hi ranjit,

Someone has requested a new password for the following account on K Gems amp; Crystals:

Username: username

If you didn't make this request, just ignore this email. If you'd like to proceed:

Click here to reset your password

Thanks for reading.
  

Ответ №1:

Если вы собираетесь отправить электронное письмо после регистрации пользователя и хотите изменить адрес электронной почты по умолчанию из WordPress. вы должны использовать этот небольшой код.

 add_fileter("wp_new_user_notification_email", "callback",10,3);
function callback( $message,  $user, $blogname) {
    $message['headers'] = array('Content-Type: text/html; charset=UTF-8');
    $message['subject'] = sprintf( '[%s] Site Name.', $blogname );
    $message['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", 
  $user->user_login, $user->user_email, $blogname );

    return $message;

}
  

Если это для электронной почты, отправляющей смену пароля

 function filter_retrieve_password_message( $message, $key, $user_login, $user_data ) { 
    // make filter magic happen here... 
    return $message; 
}; 
         
// add the filter 
add_filter( 'retrieve_password_message', 'filter_retrieve_password_message', 10, 4 ); 
  

Ответ №2:

Я вижу, что вы не используете надлежащие аргументы для фильтрации того, что вы используете. Вам нужно использовать правильный аргумент для фильтра. Попробуйте этот код

 add_filter( 'retrieve_password_message', 'retrive_reset_password_msg', 10, 4 );
function retrive_reset_password_msg( $message, $key, $user_login, $user_data ) {
    $message = __( 'Hi ###USERNAME###,

    This notice confirms that your password was changed on JDRF. If you did not change your password, please
    contact JDRF Support at siteurl.com/inquiry. This email has been sent to ###EMAIL###.

    Regards,
    All at siteurl.com
    [Application Homepage, ex. ###SITEURL###]');
    return $message;
}