-my @all_items = GetItemsInfo($biblionumber);
-my $biblio = Koha::Biblios->find( $biblionumber );
-my $framework = $biblio ? $biblio->frameworkcode : q{};
-my $tagslib = &GetMarcStructure( 0, $framework );
-my ($tag_itemnumber,$subtag_itemnumber) = &GetMarcFromKohaField( 'items.itemnumber' );
-my @nonhiddenitems = $record->field($tag_itemnumber);
-if (scalar @all_items >= 1 && scalar @nonhiddenitems == 0) {
- print $query->redirect("/cgi-bin/koha/errors/404.pl");
- exit;
+unless ( $patron and $patron->category->override_hidden_items ) {
+ # only skip this check if there's a logged in user
+ # and its category overrides OpacHiddenItems
+ if ( $biblio->hidden_in_opac({ rules => C4::Context->yaml_preference('OpacHiddenItems') }) ) {
+ print $query->redirect('/cgi-bin/koha/errors/404.pl'); # escape early
+ exit;
+ }