Ich möchte den Text der E-Mail zum Zurücksetzen des Passworts ändern, die WP mit etwas Freundlicherem versendet.
Ich versuche, den "retrieve_password_message" Filter zu verwenden, aber ich vermassle es.
Kann jemand freundlicherweise einen Beispielcode posten?
die gegebenen Antworten haben gute Absichten. Sind aber nicht gut. Es gibt mehr Parameter für den Filterfunktionsaufruf, 4 um genau zu sein.
dies funktionierte für mich für die Nachricht (ich wollte Benutzernamen durch Benutzer-E-Mail ersetzen)
beachten Sie, dass wir eine Seite mit mehreren Websites haben. Möglicherweise möchten Sie network_site_url durch get_site_url()
ersetzen.
normalerweise in deinem functions.php
deines wordpress sthemes:
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" . "
If you have any further issues, please email us to [email protected]
The Myapp Team";
return $message;
}
bonus: E-Mail-Titel/Betreff ändern
add_filter( 'retrieve_password_title',
function( $title )
{
$title = __( 'Password reset for myapp.org' );
return $title;
}
);
Ich dachte, dass dieses Code-Snippet für jeden hilfreich sein könnte, der die E-Mail zum Zurücksetzen des Passworts anpassen möchte.
//* Password reset activation E-mail -> Body
add_filter( 'retrieve_password_message', 'wpse_retrieve_password_message', 10, 2 );
function wpse_retrieve_password_message( $message, $key ){
$user_data = '';
// If no value is posted, return false
if( ! isset( $_POST['user_login'] ) ){
return '';
}
// Fetch user information from user_login
if ( strpos( $_POST['user_login'], '@' ) ) {
$user_data = get_user_by( 'email', trim( $_POST['user_login'] ) );
} else {
$login = trim($_POST['user_login']);
$user_data = get_user_by('login', $login);
}
if( ! $user_data ){
return '';
}
$user_login = $user_data->user_login;
$user_email = $user_data->user_email;
// Setting up message for retrieve password
$message = "Looks like you want to reset your password!\n\n";
$message .= "Please click on this link:\n";
$message .= '<a href="';
$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login');
$message .= '">"';
$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login');
$message .= '"</a>\n\n"';
$message .= 'Kind Regards,<br/>Dream Team';
// Return completed message for retrieve password
return $message;
}
add_filter("retrieve_password_message", "your_custom_message", 99, 2);
function your_custom_message($message, $key) {
$message = "your_custom_message";
return $message;
}
Dies ist ein Beispiel für die Verwendung des Filter-Hooks 'retrieve_password_message'.
Dies dient dazu, den E-Mail-Text zu überschreiben, den jemand beim Abrufen des Kennworts erhält.