| @@ -178,11 +178,30 @@ | ||
| 178 | 178 | } |
| 179 | 179 | } |
| 180 | 180 | |
| 181 | 181 | /** |
| 182 | + * Whether the current user is a subscriber blocked from Analytify admin UI. | |
| 183 | + * | |
| 184 | + * @since 9.1.0 | |
| 185 | + * @version 9.1.0 | |
| 186 | + * @return bool | |
| 187 | + */ | |
| 188 | + public static function is_subscriber_blocked_from_analytify() { | |
| 189 | + if ( ! is_user_logged_in() ) { | |
| 190 | + return false; | |
| 191 | + } | |
| 192 | + | |
| 193 | + $user = wp_get_current_user(); | |
| 194 | + $roles = (array) $user->roles; | |
| 195 | + | |
| 196 | + return in_array( 'subscriber', $roles, true ) && ! in_array( 'administrator', $roles, true ); | |
| 197 | + } | |
| 198 | + | |
| 199 | + /** | |
| 182 | 200 | * Check current user role - Legacy function from main file |
| 183 | 201 | * |
| 184 | 202 | * @since 1.2.2 |
| 203 | + * @version 9.1.0 | |
| 185 | 204 | * @param array<string, mixed> $access_level selected access level. |
| 186 | 205 | * @return boolean |
| 187 | 206 | */ |
| 188 | 207 | public static function pa_check_roles( $access_level ) { |
| @@ -190,8 +209,12 @@ | ||
| 190 | 209 | // Convert string to array if none of the role selected. |
| 191 | 210 | $access_level = (array) $access_level; |
| 192 | 211 | |
| 193 | 212 | if ( is_user_logged_in() && ! empty( $access_level ) ) { |
| 213 | + | |
| 214 | + if ( self::is_subscriber_blocked_from_analytify() ) { | |
| 215 | + return false; | |
| 216 | + } | |
| 194 | 217 | |
| 195 | 218 | global $current_user; |
| 196 | 219 | $roles = $current_user->roles; |
| 197 | 220 | |