diff --git src/bp-xprofile/bp-xprofile-admin.php src/bp-xprofile/bp-xprofile-admin.php
index 5d93acb..a94499a 100644
--- src/bp-xprofile/bp-xprofile-admin.php
+++ src/bp-xprofile/bp-xprofile-admin.php
@@ -508,9 +508,39 @@ function xprofile_admin_field( $admin_field, $admin_group, $class = '' ) {
 
 				<?php if ( empty( $field->can_delete )                                    ) : ?><?php esc_html_e( '(Primary)',  'buddypress' ); endif; ?>
 				<?php if ( bp_get_the_profile_field_is_required()                         ) : ?><?php esc_html_e( '(Required)', 'buddypress' ); endif; ?>
-				<?php if ( bp_xprofile_get_meta( $field->id, 'field', 'signup_position' ) ) : ?><?php esc_html_e( '(Sign-up)',  'buddypress' ); endif; ?>
 
 				<?php
+				// Check for Signup position and member type metas
+				$field_metas = bp_xprofile_get_meta( $field->id, 'field' );
+
+				if ( $field_metas ) {
+					foreach ( $field_metas as $meta_key => $meta_value ) {
+						if ( 'signup_position' === $meta_key ) {
+							esc_html_e( '(Sign-up)',  'buddypress' );
+						}
+
+						if ( 'member-type' === $meta_key ) {
+							$label  = reset( $meta_value );
+							$labels = array();
+
+							if ( 'none' !== $label ) {
+								$member_types = bp_get_member_types( array(), 'objects' );
+
+								foreach ( $meta_value as $member_type ) {
+									if ( ! isset( $member_types[ $member_type ] ) ) {
+										continue;
+									}
+
+									$labels[] = $member_types[ $member_type ]->labels['singular_name'];
+								}
+
+								$label = join( ', ', $labels );
+							}
+
+							printf( esc_html__( '(Member types: %s)',  'buddypress' ), $label );
+						}
+					}
+				}
 
 				/**
 				 * Fires at end of legend above the name field in base xprofile group.
diff --git src/bp-xprofile/classes/class-bp-xprofile-group.php src/bp-xprofile/classes/class-bp-xprofile-group.php
index 9056da9..27146a4 100644
--- src/bp-xprofile/classes/class-bp-xprofile-group.php
+++ src/bp-xprofile/classes/class-bp-xprofile-group.php
@@ -334,24 +334,34 @@ class BP_XProfile_Group {
 		// Fetch the fields
 		$fields    = $wpdb->get_results( "SELECT id, name, description, type, group_id, is_required FROM {$bp->profile->table_name_fields} WHERE group_id IN ( {$group_ids_in} ) AND parent_id = 0 {$exclude_fields_sql} ORDER BY field_order" );
 
-		// Remove fields based on member-type restrictions, if necessary.
-		if ( $r['user_id'] ) {
-			$user_member_types = bp_get_member_type( $r['user_id'], false );
-			if ( empty( $user_member_types ) ) {
+		// If some member types are set, remove fields based on member-type restrictions, if necessary.
+		if ( bp_get_member_types() ) {
+
+			if ( $r['user_id'] ) {
+				$user_member_types = bp_get_member_type( $r['user_id'], false );
+			} else {
+				$user_member_types = apply_filters( 'bp_xprofile_field_restrict_to_member_types', array() );
+			}
+
+			// Users with no member type
+			if ( false === $user_member_types ) {
 				$user_member_types = array( 'none' );
 			}
 
-			foreach ( $fields as $k => $_field ) {
-				$field_obj = new BP_XProfile_Field( $_field->id );
-				$field_member_types = $field_obj->get_member_types();
-				$matching_types = array_intersect( $user_member_types, $field_member_types );
-				if ( empty( $matching_types ) ) {
-					unset( $fields[ $k ] );
+			if ( ! empty( $user_member_types ) ) {
+
+				foreach ( $fields as $k => $_field ) {
+					$field_obj = new BP_XProfile_Field( $_field->id );
+					$field_member_types = $field_obj->get_member_types();
+					$matching_types = array_intersect( $user_member_types, $field_member_types );
+					if ( empty( $matching_types ) ) {
+						unset( $fields[ $k ] );
+					}
 				}
-			}
 
-			// Reset indexes.
-			$fields = array_values( $fields );
+				// Reset indexes.
+				$fields = array_values( $fields );
+			}
 		}
 
 		$field_ids = wp_list_pluck( $fields, 'id' );
