web-dev-qa-db-fra.com

URL manquante dans l'e-mail de réinitialisation du mot de passe

Sur la page de connexion de l'administrateur de wp, je clique pour réinitialiser mon mot de passe (pas sur le thème, sur wp). Je reçois l'e-mail mais il ne contient aucune URL à cliquer. Les plugins sont désactivés. Que dois-je faire?

6
tt24

Le problème est le <et> qui entoure l'URL de réinitialisation dans wp-login.php. Vous pouvez les supprimer en utilisant retrieve_password_message dans le fichier functions.php de votre thème, comme ci-dessous.

add_filter("retrieve_password_message", "mapp_custom_password_reset", 99, 4);

function mapp_custom_password_reset($message, $key, $user_login, $user_data )    {

$message = "Someone has requested a password reset for the following account:

" . sprintf(__('%s'), $user_data->user_email) . "

If this was a mistake, just ignore this email and nothing will happen.

To reset your password, visit the following address:

" . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n";


  return $message;

}
7
Luke Seall

Découvrez le wp-login.php sur GitHub.

Les blocs par défaut ressemblent à:

// Redefining user_login ensures we return the right case in the email.
$user_login = $user_data->user_login;
$user_email = $user_data->user_email;
$key = get_password_reset_key( $user_data );
if ( is_wp_error( $key ) ) {
    return $key;
}
$message = __('Someone has requested a password reset for the following account:') . "\r\n\r\n";
$message .= network_home_url( '/' ) . "\r\n\r\n";
$message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
$message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "\r\n\r\n";
$message .= __('To reset your password, visit the following address:') . "\r\n\r\n";
$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";

Vous devriez pouvoir filtrer le message de réinitialisation du mot de passe avec 'retrieve_password_message' et le changer pour ce dont vous avez besoin.

$message = apply_filters( 'retrieve_password_message', $message, $key, $user_login, $user_data );
1
jgraup