Como expirar todas as senhas de usuário wordpress instantaneamente?

Então, eu possuo um site de diretório de artigos e, recentemente, muitos bots se inscreveram e começaram a publicar spam. (Eu aprovo posts antes da publicação)

Eu adicionei um captcha para a página de registro do usuário agora, mas para os usuários que já estão registrados, eu quero fazer com que suas senhas expirem, então eles devem definir novos e, obviamente, os bots não poderão fazer isso.

Eu tentei múltiplos plugins sem sucesso. Eu realmente não sei o que fazer. Tenho mais de 1800 usuários, passando por eles 1 por 1 não é uma opção.

Agradeceria isso muito!

Obrigado!

Solutions Collecting From Web of "Como expirar todas as senhas de usuário wordpress instantaneamente?"

Algumas funcionalidades subjacentes emprestadas de http://wordpress.org/extend/plugins/auto-expire-passwords/ , e ajustadas. Não testado, mas ao longo das linhas do que você está procurando, então, YMMV.

function custom_forced_password_reset( $user ) { update_user_meta( $user->ID, 'password_was_force_reset', true ); } add_action( 'password_reset', 'custom_forced_password_reset' ); // Ensure all new register users have the flag set function custom_forced_password_user_register($user_id){ update_user_meta( $user_id, 'password_was_force_reset', true ); } add_action( 'user_register', 'custom_forced_password_user_register', 10, 1 ); function custom_log_in_check( $user, $username, $password ) { if ( is_wp_error( $user ) ) return $user; // Check we're dealing with a WP_User object if ( ! is_a( $user, 'WP_User' ) ) return $user; // This is a log in which would normally be succesful $user_id = $user->data->ID; $reset = get_user_meta( $user_id, 'password_was_force_reset', false ); if ( empty( $reset ) || $reset == false ) { $user = new WP_Error( 'authentication_failed', sprintf('ERROR: You must reset your password.', site_url( 'wp-login.php?action=lostpassword', 'login' ) ) ); } return $user; } add_filter( 'authenticate', 'custom_log_in_check', 30, 3 );