find_all( [ 'status' => 'publish' ] ); $due_overdue = []; foreach ( $peptides as $dto ) { $status = get_post_meta( $dto->id, '_pr_verification_status', true ) ?: 'current'; if ( in_array( $status, [ 'due', 'overdue' ], true ) ) { $last_verified = get_post_meta( $dto->id, '_pr_last_source_verified', true ); $days_since = $last_verified ? (int) ( ( time() - strtotime( $last_verified ) ) / DAY_IN_SECONDS ) : 999; $due_overdue[] = [ 'id' => $dto->id, 'title' => $dto->title, 'status' => $status, 'velocity' => get_post_meta( $dto->id, '_pr_verification_velocity', true ) ?: 'medium', 'last_verified' => $last_verified, 'days_since' => $days_since, ]; } } // Sort by days_since descending (most overdue first). usort( $due_overdue, static function ( $a, $b ) { return $b['days_since'] <=> $a['days_since']; } ); if ( empty( $due_overdue ) ) { echo '
' . esc_html__( 'All monographs are current. ', 'peptide-repo-core' ); echo esc_html__( 'Next scan: ', 'peptide-repo-core' ); $next = wp_next_scheduled( 'pr_core_verification_scan' ); if ( $next ) { echo esc_html( wp_date( 'Y-m-d H:i:s', $next ) ); } else { echo esc_html__( '(not scheduled)', 'peptide-repo-core' ); } echo '
'; } else { echo '| ' . esc_html__( 'Title', 'peptide-repo-core' ) . ' | '; echo '' . esc_html__( 'Verdict', 'peptide-repo-core' ) . ' | '; echo '' . esc_html__( 'Velocity', 'peptide-repo-core' ) . ' | '; echo '' . esc_html__( 'Last Verified', 'peptide-repo-core' ) . ' | '; echo '' . esc_html__( 'Days Overdue', 'peptide-repo-core' ) . ' | '; echo ''; echo ' |
|---|---|---|---|---|---|
| %s | %s | %s | %s | %d | Edit |
'; $nonce = wp_create_nonce( 'pr_core_scan_now' ); printf( '
', esc_attr( $nonce ), esc_html__( 'Scan Now', 'peptide-repo-core' ) ); echo ''; } }