Falta URL en el correo de restablecimiento de contraseña

16 nov 2016, 13:01:33
Vistas: 13.6K
Votos: 9

Desde la página de acceso de administrador de WordPress hago clic para restablecer mi contraseña (no en el tema, en WordPress). Recibo el correo pero no contiene ninguna URL para hacer clic. Los plugins están desactivados. ¿Qué debo hacer?

4
Comentarios

¿entonces qué es lo que envía?

Third Essential Designer Third Essential Designer
16 nov 2016 15:22:37

Envía un correo sobre alguien que solicitó una nueva contraseña y tengo que verificar haciendo clic en el siguiente enlace. Pero no hay ningún enlace, solo una línea en blanco.

tt24 tt24
24 nov 2016 19:58:28

He tenido exactamente el mismo problema durante años: ¿cómo es posible que WordPress no lo haya solucionado todavía? ¿No es tan común?

CDuv CDuv
13 may 2019 13:50:15

Este error aún existe en WordPress. No tengo idea de por qué no se ha solucionado.

Feriman Feriman
1 dic 2019 20:13:17
Todas las respuestas a la pregunta 5
4
10

El problema son los < y > que rodean la URL de restablecimiento en wp-login.php. Puedes eliminarlos usando el filtro retrieve_password_message en el archivo functions.php de tu tema como se muestra a continuación:

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

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

    $message = "Alguien ha solicitado un restablecimiento de contraseña para la siguiente cuenta:

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

Si esto fue un error, simplemente ignora este correo y no sucederá nada.

Para restablecer tu contraseña, visita la siguiente dirección:

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


    return $message;

}
7 nov 2017 17:03:22
Comentarios

¿Qué significan el 99 y el 4 en la siguiente línea? ¿Alguien me puede explicar? add_filter("retrieve_password_message", "mapp_custom_password_reset", 99, 4); La respuesta anterior funciona para mí, pero no sé qué son los últimos 2 parámetros.

Amit Joshi Amit Joshi
11 ene 2020 16:17:21

¿Qué significan el 99 y el 4 en la siguiente línea? ¿Alguien me puede explicar? add_filter("retrieve_password_message", "mapp_custom_password_reset", 99, 4); La respuesta anterior funciona para mí, pero no sé qué son los últimos 2 parámetros y cómo puedo obtenerlos para pasarlos en el filtro.

Amit Joshi Amit Joshi
11 ene 2020 16:31:19

El 99 es la prioridad y el 4 es el número de argumentos que se pasarán a la función de callback - https://developer.wordpress.org/plugins/hooks/actions/#additional-parameters

Luke Seall Luke Seall
13 ene 2020 12:02:50

¿Por qué los caracteres mayor que y menor que están causando un problema? Nunca había visto que esto ocurra antes...

Andrew Schultz Andrew Schultz
11 mar 2020 16:39:13
0

Si solo deseas eliminar los corchetes angulares que WordPress añade pero mantener el resto del mensaje generado sin cambios, agrega lo siguiente al archivo functions.php de tu tema de WordPress (por ejemplo, wp-content/themes/some_awesome_theme/functions.php).

/**
 * Elimina los corchetes angulares (caracteres < y >) alrededor de las URLs en una cadena dada
 *
 * @param string $string    La cadena de la cual eliminar posibles corchetes angulares
 *
 * @return string    $string donde cualquier corchete angular que rodee una URL ha sido eliminado.
 */
function remove_angle_brackets_around_url($string)
{
    return preg_replace('/<(' . preg_quote(network_site_url(), '/') . '[^>]*)>/', '\1', $string);
}

// Aplica la función remove_angle_brackets_around_url() en el mensaje de "recuperar contraseña":
add_filter('retrieve_password_message', 'remove_angle_brackets_around_url', 99, 1);
13 may 2019 16:51:49
0

Echa un vistazo al archivo wp-login.php en GitHub.

Los bloques predeterminados se ven así:

// Redefinir user_login asegura que devolvamos el caso correcto en el correo electrónico.
$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 = __('Alguien ha solicitado un restablecimiento de contraseña para la siguiente cuenta:') . "\r\n\r\n";
$message .= network_home_url( '/' ) . "\r\n\r\n";
$message .= sprintf(__('Nombre de usuario: %s'), $user_login) . "\r\n\r\n";
$message .= __('Si esto fue un error, simplemente ignora este correo y no pasará nada.') . "\r\n\r\n";
$message .= __('Para restablecer tu contraseña, visita la siguiente dirección:') . "\r\n\r\n";
$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";

Deberías poder filtrar el mensaje de restablecimiento de contraseña con 'retrieve_password_message' y cambiarlo según tus necesidades.

$message = apply_filters( 'retrieve_password_message', $message, $key, $user_login, $user_data );
16 nov 2016 15:43:37
0

Tuve este problema y quería compartir cómo lo resolví aquí.

Abrí el correo electrónico y a la derecha, donde normalmente verías la marca de tiempo de cuando recibiste el correo, habrá tres puntos.

Haz clic en eso y luego selecciona "mostrar original"

Desde allí verás el código del correo. Busca la parte del correo donde dice que debes hacer clic en el enlace.

Copia el enlace que está entre los signos < >. Pégalo en tu navegador y listo, podrás restablecer tu contraseña.

24 may 2019 22:07:30
0

Tuve este problema e hice algo similar a Travis...

  1. Haz clic derecho en el mensaje de correo electrónico
  2. Selecciona ver código fuente
  3. Copia el enlace que aparece debajo de las palabras 'Para restablecer tu contraseña, visita la siguiente dirección:'
  4. Pégalo en el cuadro de tu dominio y listo.

Espero que esto también te ayude :)

7 feb 2020 14:35:31