<?php
/**
 * Partner logo component, shared by the sponsor tiers and organizers blocks.
 *
 * Reads the Sponsor Meta ACF fields as raw meta: `logo` (attachment ID,
 * falls back to the featured image) and `url` (optional external link).
 *
 * @package Kadence-Child
 */

defined( 'ABSPATH' ) || exit;

function pv_render_partner_logo( WP_Post $post ) {
    $name    = get_the_title( $post );
    $logo_id = (int) get_post_meta( $post->ID, 'logo', true );
    if ( ! $logo_id ) {
        $logo_id = (int) get_post_thumbnail_id( $post );
    }

    $alt   = $logo_id ? trim( (string) get_post_meta( $logo_id, '_wp_attachment_image_alt', true ) ) : '';
    $media = $logo_id
        ? wp_get_attachment_image( $logo_id, 'medium_large', false, array(
            'class'   => 'pv-partner-logo__img',
            'alt'     => '' !== $alt ? $alt : $name,
            'loading' => 'lazy',
        ) )
        : '';
    if ( ! $media ) {
        $media = '<span class="pv-partner-logo__name">' . esc_html( $name ) . '</span>';
    }

    // Post types with single pages (sponsors) link there; others (organizers)
    // fall back to their external website in a new tab.
    if ( is_post_type_viewable( $post->post_type ) ) {
        $media = sprintf(
            '<a class="pv-partner-logo__link" href="%s">%s</a>',
            esc_url( get_permalink( $post ) ),
            $media
        );
    } else {
        $url = (string) get_post_meta( $post->ID, 'url', true );
        if ( '' !== $url ) {
            $media = sprintf(
                '<a class="pv-partner-logo__link" href="%s" target="_blank" rel="noopener noreferrer">%s</a>',
                esc_url( $url ),
                $media
            );
        }
    }

    return '<li class="pv-partner-logo">' . $media . '</li>';
}
