Von:
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
[...]
if ($settings['create_admins'] > 0 || $admin['super_admin'] > 0 ) {
$admin ist vom Typ PDOStatament das ist eine Klasse und kein Array. Daher können Sie [] nicht aufrufen Operator darauf.
Auch sollten Sie wirklich nicht immer $admin zuweisen zum Rückgabeergebnis jeder Methode, da die meisten PDOStatament Die Methoden von geben boolesche Werte zurück:
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
$admin->bindValue(':username', $_SESSION['user']);
$admin->execute();
Zum Abrufen des super_admin Spalte aus dem admin Tabelle, die Sie hinzufügen sollten (nach dem execute() Erklärung):
$result = $admin->fetch(PDO::FETCH_ASSOC);
was aufgefüllt wird (hoffentlich hängt es vom Tabellenschema ab) $result['super_admin'] .