-my $errorstring='';
-for my $itemnumber ( @items ) {
- my ($status,$error) = CanBookBeRenewed( $borrowernumber, $itemnumber );
- if ( $status == 1 && $opacrenew == 1 ) {
- AddRenewal( $borrowernumber, $itemnumber );
- }
- else {
- $errorstring .= $error ."|";
+my $errorstring = q{};
+my $renewed = q{};
+
+my $patron = Koha::Patrons->find( $borrowernumber );
+
+if ( $patron->category->effective_BlockExpiredPatronOpacActions
+ && $patron->is_expired )
+{
+ $errorstring = 'card_expired';
+}
+else {
+ my @renewed;
+ for my $itemnumber (@items) {
+ my ( $status, $error ) =
+ CanBookBeRenewed( $borrowernumber, $itemnumber );
+ if ( $status == 1 && $opacrenew == 1 ) {
+ AddRenewal( $borrowernumber, $itemnumber, undef, undef, undef, undef, 0 );
+ push( @renewed, $itemnumber );
+ }
+ else {
+ $errorstring .= $error . "|";
+ }