<?php
if ( ! defined( 'ABSPATH' ) ) exit;

global $post;

// Obter o ID do produto e do autor
$product_id = get_the_ID(); // Obtém o ID do produto atual
$author_id = get_post_field('post_author', $product_id); // Obtém o ID do autor do produto

// Obter informações do autor usando get_the_author_meta
$full_name = get_the_author_meta('display_name', $author_id); // Nome completo do autor
$first_name = get_the_author_meta('first_name', $author_id); // Primeiro nome
$last_name = get_the_author_meta('last_name', $author_id); // Sobrenome

// Se não houver primeiro nome e último nome, usar o display_name
if (empty($first_name) && empty($last_name)) {
    $full_name = ucwords(get_the_author_meta('display_name', $author_id));
} else {
    $first_name = ucwords(strtolower($first_name));
    $last_name = ucwords(strtolower($last_name));
    $full_name = trim($first_name . ' ' . $last_name);
}

// Obter outras informações do autor
$email = get_the_author_meta('user_email', $author_id); // Email do autor
$profile_image = get_avatar($author_id, 128); // Imagem de perfil com tamanho 128x128

// Localização do autor
$city = ucwords(get_user_meta($author_id, 'billing_city', true));
$state = ucwords(get_user_meta($author_id, 'billing_state', true));
$country = get_user_meta($author_id, 'billing_country', true); // País

// Data de registro
$date_format = get_option('date_format', 'F j, Y');
$registration_date = gmdate($date_format, strtotime(get_the_author_meta('user_registered', $author_id)));

// Obter número de doações do WP Crowdfunding na tabela wp_wc_orders
$args = array(
    'post_status' => 'publish',
    'post_type' => 'product',
    'author' => $author_id,
    'tax_query' => array(
        array(
            'taxonomy' => 'product_type',
            'field' => 'slug',
            'terms' => 'crowdfunding',
        ),
    ),
    'posts_per_page' => -1
);
$the_query = new \WP_Query($args);
$donation_count = $the_query->post_count;

if (!$donation_count) {
    $donation_count = 0;
}

// Obter campanhas favoritas
$loved_campaign_ids = get_user_meta($author_id, 'loved_campaign_ids', true);
$favorite_count = 0;

if ($loved_campaign_ids) {
    $loved_campaign_ids_array = json_decode($loved_campaign_ids, true);
    if (is_array($loved_campaign_ids_array)) {
        $favorite_count = count($loved_campaign_ids_array);
    }
}

// Verificar se está em modo de edição do Elementor ou em pré-visualização
if (\Elementor\Plugin::$instance->editor->is_edit_mode() || is_preview()) {
    $first_name = __('Name', 'link-nacional-wp-crowdfunding-extension');
    $last_name = __('Lastname', 'link-nacional-wp-crowdfunding-extension');
    $full_name = __('Name Lastname', 'link-nacional-wp-crowdfunding-extension');
    $email = __('email@edit.com', 'link-nacional-wp-crowdfunding-extension');
    $city = __('City', 'link-nacional-wp-crowdfunding-extension');
    $state = __('State', 'link-nacional-wp-crowdfunding-extension');
    $country = __('Country', 'link-nacional-wp-crowdfunding-extension');
    $registration_date = __('Month 01, Year', 'link-nacional-wp-crowdfunding-extension');
    $donation_count = 1;
    $favorite_count = 0;
}
?>

<?php if ($author_id): ?>
<div class="lkn-user-profile-container">
    <div class="lkn-user-profile-image">
        <?php echo wp_kses_post($profile_image); // Escapa imagens ou conteúdo HTML seguro?>
    </div>

    <div class="lkn-user-details">
        <div class="lkn-user-name">
            <?php echo esc_html($full_name); ?>
        </div>

        <div class="lkn-campaign-count">
            <?php echo sprintf(
                // translators: Favorite campaign
                esc_html__('%1$d campaign(s) | %2$d favorite campaign(s)', 'link-nacional-wp-crowdfunding-extension'),
                esc_html($donation_count),
                esc_html($favorite_count)
            ); ?>
        </div>

        <a
            href="#"
            class="lkn-open-bio-modal"
        >
            <?php echo esc_html__('View full biography', 'link-nacional-wp-crowdfunding-extension'); ?>
        </a>
    </div>
</div>
<?php endif; ?>