diff --git a/class.two-factor-force.php b/class.two-factor-force.php
index 88f59ed3..a62547f6 100644
--- a/class.two-factor-force.php
+++ b/class.two-factor-force.php
@@ -280,7 +280,12 @@ public static function is_two_factor_forced( $user_id ) {
// Check whether a user is in a user role that requires two-factor authentication.
$two_factor_forced_roles = self::get_forced_user_roles();
- $required_roles = array_filter( $user->roles, function( $role ) use ( $two_factor_forced_roles ) {
+ $user_roles = $user->roles;
+ if ( is_super_admin( $user->ID ) ) {
+ array_push( $user_roles, 'super-admin' );
+ }
+
+ $required_roles = array_filter( $user_roles, function( $role ) use ( $two_factor_forced_roles ) {
return in_array( $role, $two_factor_forced_roles, true );
}, ARRAY_FILTER_USE_BOTH );
@@ -373,12 +378,13 @@ public static function global_force_2fa_field() {
public static function global_force_2fa_by_role_field() {
$forced_roles = self::get_forced_user_roles();
$is_universally_forced = self::get_universally_forced_option();
+ $roles = array_merge( [ 'super-admin' => [ 'name' => __( 'Super Admin' ) ] ], get_editable_roles() );
?>
$role ) :
+ foreach ( $roles as $slug => $role ) :
?>