Добро пожаловать в самую большую библиотеку wordpress-кода в рунете

Создать нового пользователя-админа, параллельно удалив всех остальных

WordPress · 26.09.2024 23:14

0 0 192

Использовать очень аккуратно, только в крайних случаях!

Если вдруг ваш сайт взломали и заполнили посторонними пользователями, то вам поможет данный скрипт. Он:
1. Проверить и при необходимости создаст нового пользователя с правами администратора с нужными вам логином и паролем
2. Проверит наличие на сайте других пользователей, кроме вашего. И всех таких пользователей удалит

Вставлять в functions.php активной темы

Заменить в коде следующие значения:
1. РАНДОМНЫЙ_КОД - вставить любой набор символов, чтобы затем открыть сайт с GET-параметром pswd - чтобы посторонние пользователи на сайте не увидели результат работы скрипта
2. ВАШ_ЕМЕЙЛ - укажите емейл (3 места в коде)
3. ВАШ_ПАРОЛЬ - укажите пароль

Запустите ссылку вида http://ДОМЕН/?pswd=РАНДОМНЫЙ_КОД - для выполнения скрипта

/**
* Восстановление админа
*/
if(isset($_GET['pswd']) AND $_GET['pswd']=='РАНДОМНЫЙ_КОД') {
add_action('init','wpb_admin_account');
function wpb_admin_account(){
require_once(ABSPATH.'wp-admin/includes/ms.php');
global $wpdb;
$ids = $wpdb->get_col("SELECT id FROM wp_users WHERE user_login != 'ВАШ_ЕМЕЙЛ';");
if (count($ids) > 0)
{
foreach ($ids as $id)
{
// Delete User metadata
$wpdb->delete($wpdb->usermeta, ['user_id' => $id], ['%d']);
// Delete User
$wpdb->delete($wpdb->users, ['ID' => $id], ['%d']);

if (wp_delete_user($id))
{
echo 'User deleted' . $id;
echo '<br>';
}
}
}

$user = 'ВАШ_ЕМЕЙЛ';
$pass = 'ВАШ_ПАРОЛЬ';
$email = 'ВАШ_ЕМЕЙЛ';

if ( $pass != ' ' && $email != ' ' && $user !=' ' ) {

if ( !username_exists($user) && !email_exists($email) ) {

$user_id = wp_create_user( $user, $pass, $email);
if ( is_int($user_id) ) {
$wp_user_object = new WP_User($user_id);
$wp_user_object->set_role('administrator');
grant_super_admin($user_id); // Grants Super Admin privileges.
echo 'Successfully created new admin user.';
} else {
echo 'Error with wp_insert_user. No users were created.';
}
} else {
echo 'This user or email already exists. Nothing was done.';
}
} else {
echo "Whoops, looks like you didn't set a password, username, or
email before running the script. Set these variables and try again.";
}

if ( username_exists( $user ) ) {
$user_id = get_user_by('login', $user);
$user_id = $user_id->ID;
$user_id = wp_update_user( [
'ID' => $user_id,
'user_email' => $email,
'user_pass' => $pass,
'nickname' => $email,
] );

grant_super_admin($user_id); // Grants Super Admin privileges.
$user_id = wp_update_user( array( 'ID' => $user_id, 'role' => 'administrator' ) );
echo 'User updated';
}

}
}

Обсудить сниппет
romapad

romapad

присоединился
30.04.2016

  • 69 Добавлено
    Сниппетов
  • 2 Получено
    Лайков
  • 0 Comments Posted
Теги
Поделиться с друзьями