Hay veces que nos interesa deshabilitar la recuperación de contraseñas de WordPress y así evitar posibles accesos indebidos a un sitio web.
Nosotros tenemos algunos blogs de afiliación donde diariamente se solicitan cientos de recuperaciones de contraseñas con el usuario que publica los posts. A esas webs no tiene que acceder nadie más que nosotros por lo que podemos deshabilitar la recuperación de contraseñas completamente. Si algún día nos hiciera falta o podemos deshabilitarlo temporalmente o normalmente lo haríamos a través de la base de datos.
Simplemente añadiendo estas líneas al functions.php del child theme deshabilitaremos esta función:
function apa_disable_password_reset() {
return false;
}
add_filter ( 'allow_password_reset', 'apa_disable_password_reset' );
O en forma de plugin:
<?php
/**
* Plugin Name: Deshabilitar recuperación de contraseña
* Plugin URI: https://hablandodeinternet.com
* Description: Deshabilita la opción de recuperar contraseña en cualquier WordPress
* Version: 1.0.0
* Requires at least: 5.0
* Requires PHP: 7.2
* Author: Hablando de Internet
* Author URI: https://hablandodeinternet.com/deshabilitar-recuperacion-de-contrasena-en-wordpress/
*/
function disable_password_reset() {
return false;
}
add_filter ( 'allow_password_reset', 'disable_password_reset' );
Esto parece que no funciona en todas las versiones de WordPress. Si no te funciona, esto siempre funciona. Para el functions.php:
function apa_disable_password_reset() {
if (isset( $_GET['action'] )){
if ( in_array( $_GET['action'], array('lostpassword', 'retrievepassword') ) ) {
wp_redirect( wp_login_url(), 301 );
exit;
}
}
}
add_action( "login_init", "apa_disable_password_reset" );
Y en formato plugin:
<?php
/**
* Plugin Name: Deshabilitar recuperación de contraseña
* Plugin URI: https://hablandodeinternet.com
* Description: Deshabilita la opción de recuperar contraseña en cualquier WordPress
* Version: 1.0.0
* Requires at least: 5.0
* Requires PHP: 7.2
* Author: Hablando de Internet
* Author URI: https://hablandodeinternet.com/deshabilitar-recuperacion-de-contrasena-en-wordpress/
*/
function apa_disable_password_reset() {
if (isset( $_GET['action'] )){
if ( in_array( $_GET['action'], array('lostpassword', 'retrievepassword') ) ) {
wp_redirect( wp_login_url(), 301 );
exit;
}
}
}
add_action( "login_init", "apa_disable_password_reset" );
