$value ) { switch ( $key ) { case self::DISMISSED: // support multiple dismissed hints foreach ( (array) $value as $dismissed_hint ) { if ( self::is_dismissed( $dismissed_hint ) ) { return false; } } break; case self::CAPABILITY: if ( ! current_user_can( $value ) ) { return false; } break; case self::DEFINED: if ( defined( $value ) ) { return false; } break; case self::PLUGIN_INSTALLED: if ( ! self::is_plugin_installed( $value ) ) { return false; } break; case self::PLUGIN_ACTIVE: if ( ! self::is_plugin_active( $value ) ) { return false; } break; } } return true; } public static function get_hints( $hint_key = null ): array { $hints = [ 'site_mailer_forms_email_notice' => [ self::DISMISSED => 'site_mailer_forms_email_notice', self::CAPABILITY => 'install_plugins', self::DEFINED => 'SITE_MAILER_VERSION', ], 'site_mailer_forms_submissions_notice' => [ self::DISMISSED => [ 'site_mailer_forms_submissions_notice', 'site_mailer_forms_email_notice' ], self::CAPABILITY => 'install_plugins', self::DEFINED => 'SITE_MAILER_VERSION', ], ]; if ( ! $hint_key ) { return $hints; } return $hints[ $hint_key ] ?? []; } }