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" );