Dari:
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
[...]
if ($settings['create_admins'] > 0 || $admin['super_admin'] > 0 ) {
$admin bertipe PDOStatament yang merupakan kelas dan bukan array. Karenanya Anda tidak dapat memanggil [] operator di dalamnya.
Anda juga tidak harus selalu menetapkan $admin ke hasil pengembalian setiap metode karena sebagian besar PDOStatament metode mengembalikan nilai boolean:
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
$admin->bindValue(':username', $_SESSION['user']);
$admin->execute();
Untuk mengambil super_admin kolom dari admin tabel yang harus Anda tambahkan (setelah execute() pernyataan):
$result = $admin->fetch(PDO::FETCH_ASSOC);
yang akan diisi (semoga, itu tergantung pada skema tabel apa) $result['super_admin'] .