admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('abc_integrity_scan'), ]); } function abc_integrity_time_ago(int $timestamp): string { $diff = time() - $timestamp; if ($diff < 60) { return 'just now'; } if ($diff < 3600) { $mins = (int) round($diff / 60); return $mins === 1 ? '1 minute ago' : "{$mins} minutes ago"; } if ($diff < 86400) { $hours = (int) round($diff / 3600); return $hours === 1 ? '1 hour ago' : "{$hours} hours ago"; } $days = (int) round($diff / 86400); return $days === 1 ? 'yesterday' : "{$days} days ago"; } function abc_integrity_render_admin_page(): void { if (!current_user_can('manage_options')) { wp_die('Forbidden'); } $manifest = abc_integrity_get_manifest(); $results = abc_integrity_get_scan_results(); $version = (string) get_bloginfo('version'); $locale = get_locale() ?: 'en_US'; $rescanContext = abc_integrity_get_rescan_context($results, $version); $hasResults = is_array($results) && ($results['version'] ?? '') === $version && ($results['locale'] ?? '') === $locale && $manifest !== null && ($results['manifest_fetched_at'] ?? 0) === (int) ($manifest['fetched_at'] ?? -1); $isStale = $hasResults && (time() - (int) ($results['scanned_at'] ?? 0)) > 4 * HOUR_IN_SECONDS; $dateFormat = get_option('date_format') . ' \a\t ' . get_option('time_format'); ?>
Verify your WordPress core files against the official checksums from WordPress.org.
Scanned