get_board_snapshot(); /** * Render a single board card as HTML. * * @param array $card Card data from Board_Data_Provider. * @param string $column_key Column identifier (generating|in_review|published|failed). * @return void */ function prab_render_board_card( array $card, string $column_key ): void { $title = ! empty( $card['title'] ) ? esc_html( $card['title'] ) : esc_html__( 'Untitled', 'prautoblogger' ); $cost = isset( $card['cost_total'] ) ? '$' . esc_html( number_format( (float) $card['cost_total'], 4 ) ) : ''; $click_url = ''; $link_text = ''; if ( 'review' === ( $card['click_action'] ?? '' ) ) { $click_url = esc_url( $card['review_url'] ?? '' ); $link_text = esc_html__( 'Review Queue', 'prautoblogger' ); } elseif ( 'edit' === ( $card['click_action'] ?? '' ) ) { $click_url = esc_url( $card['edit_url'] ?? '' ); $link_text = esc_html__( 'Edit Post', 'prautoblogger' ); } elseif ( 'logs' === ( $card['click_action'] ?? '' ) ) { $click_url = esc_url( $card['log_url'] ?? '' ); $link_text = esc_html__( 'View Log', 'prautoblogger' ); } $is_generating = ( 'generating' === $column_key ); $card_class = 'prab-board-card'; if ( $is_generating ) { $card_class .= ' prab-board-card--generating'; } ?>

array( 'label' => __( 'Generating', 'prautoblogger' ), 'pill' => 'prab-pill--generating', 'cards' => $snapshot['generating'], ), 'in_review' => array( 'label' => __( 'In Review', 'prautoblogger' ), 'pill' => 'prab-pill--review', 'cards' => $snapshot['in_review'], ), 'published' => array( 'label' => __( 'Published', 'prautoblogger' ), 'pill' => 'prab-pill--published', 'cards' => $snapshot['published'], ), 'failed' => array( 'label' => __( 'Failed', 'prautoblogger' ), 'pill' => 'prab-pill--failed', 'cards' => $snapshot['failed'], ), ); foreach ( $columns as $col_key => $col ) : $count = count( $col['cards'] ); ?>