queueManager = new ContaiQueueManager(); } public function render(): void { $this->renderFlashNotices(); $creditGuard = new ContaiCreditGuard(); $creditCheck = $creditGuard->validateCredits(); if ( ! $creditCheck['has_credits'] ) : ?> queueManager->getQueueStatus(); ?>

renderProcessingTable( $status['processing_jobs'] ); ?>

renderNotice( 'success', $message ); } // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Display-only read of GET params after redirect. if ( isset( $_GET['error'] ) && isset( $_GET['message'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $message = sanitize_text_field( wp_unslash( $_GET['message'] ) ); $this->renderNotice( 'error', $message ); } } private function renderNotice( string $tone, string $message ): void { $icons = array( 'success' => 'dashicons-yes-alt', 'error' => 'dashicons-dismiss', 'warning' => 'dashicons-warning', 'info' => 'dashicons-info', ); $icon = $icons[ $tone ] ?? 'dashicons-info'; ?>

calculateElapsedTime( $job['processed_at'] ) ); ?>
0 ) { return sprintf( '%dm %ds', $minutes, $seconds ); } return sprintf( '%ds', $seconds ); } }