<?php

namespace Lknwp\CrowdfundingExtension\Includes\elementorFields;

use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;

if (! defined('ABSPATH')) {
    exit;
}

class LknwpCrowdfundingTemplateShortDescription extends Widget_Base
{
    public function get_name()
    {
        return 'lkn-wp-crowdfunding-short-description';
    }

    public function get_title()
    {
        return __('Product Summary', 'link-nacional-wp-crowdfunding-extension');
    }

    public function get_icon()
    {
        return 'eicon-text-align-justify';
    }

    public function get_categories()
    {
        return ['lkn-wp-crowdfunding-extension'];
    }

    protected function _register_controls()
    {
        // Seção de Conteúdo
        $this->start_controls_section(
            'content_section',
            [
                'label' => __('Content', 'link-nacional-wp-crowdfunding-extension'),
                'tab' => Controls_Manager::TAB_CONTENT,
            ]
        );

        // Campo para definir a tag HTML que envolverá o resumo
        $this->add_control(
            'html_tag',
            [
                'label' => __('HTML Tag', 'link-nacional-wp-crowdfunding-extension'),
                'type' => Controls_Manager::SELECT,
                'options' => [
                    'div' => 'Div',
                    'p' => 'Paragraph',
                    'span' => 'Span',
                    'strong' => 'Strong',
                    'em' => 'Emphasize',
                ],
                'default' => 'div',
            ]
        );

        $this->end_controls_section();

        // Seção de Estilo
        $this->start_controls_section(
            'style_section',
            [
                'label' => __('Style', 'link-nacional-wp-crowdfunding-extension'),
                'tab' => Controls_Manager::TAB_STYLE,
            ]
        );

        // Cor do texto para o resumo do produto
        $this->add_control(
            'short_description_text_color',
            [
                'label' => __('Short Description Text Color', 'link-nacional-wp-crowdfunding-extension'),
                'type' => Controls_Manager::COLOR,
                'default' => '#000000', // Cor padrão (preto)
                'selectors' => [
                    '{{WRAPPER}} .lkn-product-short-description' => 'color: {{VALUE}};',
                ],
            ]
        );

        // Tipografia para o resumo do produto
        $this->add_group_control(
            Group_Control_Typography::get_type(),
            [
                'name' => 'short_description_typography',
                'label' => __('Typography', 'link-nacional-wp-crowdfunding-extension'),
                'selector' => '{{WRAPPER}} .lkn-product-short-description',
            ]
        );

        $this->end_controls_section();
    }

    protected function render()
    {
        $product_id = get_the_ID();
        $settings = $this->get_settings_for_display();

        // Obtém a tag HTML configurada pelo usuário, aplicando esc_html para segurança
        $html_tag = !empty($settings['html_tag']) ? esc_html($settings['html_tag']) : 'div';

        // Verifica se estamos no editor do Elementor ou na página de preview
        if (\Elementor\Plugin::$instance->editor->is_edit_mode() || is_preview()) {
            // Adiciona uma mensagem padrão no modo de edição ou preview, usando esc_html__ para escapar a tradução
            echo '<' . esc_html($html_tag) . ' class="lkn-product-short-description">';
            echo esc_html__('Description/Summary', 'link-nacional-wp-crowdfunding-extension');
            echo '</' . esc_html($html_tag) . '>';
        } else {
            if (get_post_type() === 'product') {
                $short_description = get_post_field('post_excerpt', $product_id);

                // Verifica se o resumo existe
                if (!empty($short_description)) {
                    echo '<' . esc_html($html_tag) . ' class="lkn-product-short-description">';
                    echo wp_kses_post(htmlspecialchars_decode(wpautop($short_description)));
                    echo '</' . esc_html($html_tag) . '>';
                } else {
                    // Caso o produto não tenha resumo
                    return '';
                }
            } else {
                echo '<' . esc_html($html_tag) . ' class="lkn-product-short-description">';
                echo esc_html__('Description/Summary', 'link-nacional-wp-crowdfunding-extension');
                echo '</' . esc_html($html_tag) . '>';
            }

        }
    }
}
