WordPress: Сбросить пароль к админке через FTP

Если Вы забываете пароль намертво, а реально восстановление пароля невозможно (ну нет емейла например такого даже в природе) — то зайдя через файловую систему на сервер просто добавьте немножко хаков в password-recovery.php (он маленький, поэтому так можно)

<?php
require 'wp-load.php';
 
if (@$_SERVER['HTTP_X_REAL_IP'] == 'Ваш айпишник') { //чтобы враги не перехватили
	//а если мы вовсе все забыли
	$rows = $wpdb->get_results('SELECT * FROM ' . $wpdb->users);
	$change_user_number = 0;
	if (isset($_GET['ch'])) {	
		$change_user_number = (int) $_GET['ch'];
		if ($change_user_number && !isset($rows[$change_user_number - 1])) {
			$change_user_number = 0;
		}
	}
	if (!$change_user_number) {
		//выберем кого именно мы менять будем
		if (count($rows) > 1) {
			echo '<table>';
			foreach ($rows AS $i => $row) {
				echo '<tr><td>' . $row['ID']  . '</td><td>' . $row['email'] 
					. '</td><td>' . $row['user_login'] . '</td><td><a href="?ch=' . ($i + 1) . '">[change]</a></td></tr>';
			}
			echo '</table>';
		} else {
			$change_user_number = 1;
		}		
	}
	if ($change_user_number) {
		$change_user = $rows[$change_user_number - 1];	
		$hash = wp_hash_password('мойновыйсекретныйкод'); //чтобы враги не догадались
		$wpdb->update($wpdb->users, array('user_pass' => $hash, 'user_activation_key' => ''), array('ID' => $change_user['ID']));
		wp_cache_delete($change_user['ID'], 'users');
		echo 'Password Change for ID:' . $change_user['ID'] . ' Email:' . $change_user['email'] . ' Login:' . $change_user['user_login'];
	}
	exit;
}

Оставить комментарий

XHTML: Вы можете использовать такие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">