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

class My_Custom_Widget extends \Elementor\Widget_Base {

    public function get_name() {
        return 'platebni_formular';
    }

    public function get_title() {
        return __( 'Platební formulář', 'platebni-formular' );
    }

    public function get_icon() {
        return 'eicon-cart-solid';
    }

    public function get_categories() {
        return [ 'basic' ];
    }



    protected function _register_controls() {
    global $wpdb;

    // Kontrola počtu zaplacených objednávek a existence parent_payment_uid
    $paid_orders_count = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}zakaznici WHERE payment_status = 'paid' AND api_url NOT LIKE '%demo%'");
    $parent_payment_uid = get_option('parent_payment_uid', '');

    // Kontrola, zda byla poslední platba neúspěšná
    $payment_failed = get_option('payment_failed', 'ne');
    $parent_payment_completed = get_option('parent_payment_completed', 'ne');

// První tlačítko: Pokud je 5 a více zaplacených objednávek, parent_payment_uid neexistuje, a parent_payment_completed je 'yes' nebo neexistuje
if ($paid_orders_count >= 5 && empty($parent_payment_uid) && ($parent_payment_completed === 'yes' || $parent_payment_completed === 'ne')) {
    $this->start_controls_section(
        'payment_required_section',
        [
            'label' => __( 'Platba vyžadována', 'platebni-formular' ),
            'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
        ]
    );

    $this->add_control(
        'payment_button',
        [
            'label' => __( '', 'platebni-formular' ),
            'type' => \Elementor\Controls_Manager::RAW_HTML,
            'raw' => '<a href="' . esc_url(home_url('/call_token.php')) . '" style="display: inline-block; background-color: red; color: white; padding: 20px 40px; text-decoration: none; font-size: 16px; font-weight: bold;">
                        Zadejte své platební údaje pro poplatek za platební formulář
                      </a>',
        ]
    );

    $this->end_controls_section();
}


    // Druhé tlačítko: Pokud selhala platba
    if ($payment_failed === 'ano') {
        $this->start_controls_section(
            'payment_failed_section',
            [
                'label' => __( 'Neúspěšná platba', 'platebni-formular' ),
                'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
            ]
        );

        $this->add_control(
            'failed_payment_button',
            [
                'label' => __( '', 'platebni-formular' ),
                'type' => \Elementor\Controls_Manager::RAW_HTML,
                'raw' => '<a href="' . esc_url(home_url('/call_token.php')) . '" style="display: inline-block; background-color: red; color: white; padding: 20px 40px; text-decoration: none; font-size: 16px; font-weight: bold;">
                            Nezdařila se platba poplatku za platební formulář. Zkontrolujte prostředky na svém účtu, nebo aktualizujte platební údaje kliknutím na toto tlačítko.
                          </a>',
            ]
        );

        $this->end_controls_section();
    }


    if (!($paid_orders_count >= 5 && empty($parent_payment_uid)) && $payment_failed !== 'ano') {
     






  $this->start_controls_section(
            'content_section',
            [
                'label' => __( 'Nastavení ceny', 'platebni-formular' ),
                'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
            ]
        );

        // Název produktu
        $this->add_control(
            'product_name',
            [
                'label' => __( 'Název produktu', 'platebni-formular' ),
                'type' => \Elementor\Controls_Manager::TEXT,
                'default' => '',
                'placeholder' => __( 'Zadejte název produktu', 'platebni-formular' ),
            ]
        );



        // Text tlačítka
        $this->add_control(
            'button_text',
            [
                'label' => __( 'Text tlačítka', 'platebni-formular' ),
                'type' => \Elementor\Controls_Manager::TEXT,
                'default' => __( 'Zaplatit', 'platebni-formular' ),
            ]
        );


// Částka
// Načtení nastavení plátce DPH a výše DPH z WordPress options
$is_vat_payer = get_option('faktury_platce_dph', 'ne') === 'ano';
$vat_rate = floatval(get_option('faktury_dph_vyse', 0)); // Výše DPH v procentech

// Text pro štítek částky
$amount_label = $is_vat_payer
    ? sprintf(__('Částka (Kč, včetně DPH %s %%)', 'platebni-formular'), number_format($vat_rate, 0))
    : __('Částka (Kč)', 'platebni-formular');

$this->add_control(
    'amount',
    [
        'label' => $amount_label,
        'type' => \Elementor\Controls_Manager::NUMBER,
        'default' => 100,
        'min' => 1,
        'step' => 1,
    ]
);

// Políčko pro škrtnutou cenu
$this->add_control(
    'crossed_amount',
    [
        'label' => __('Škrtnutá cena (Kč)', 'platebni-formular'),
        'type' => \Elementor\Controls_Manager::NUMBER,
        'default' => '',
        'min' => 1,
        'step' => 1,
    ]
);


        // Barva tlačítka
        $this->add_control(
            'button_color',
            [
                'label' => __( 'Barva tlačítka', 'platebni-formular' ),
                'type' => \Elementor\Controls_Manager::COLOR,
                'default' => '#34bd19',
                'selectors' => [
                    '{{WRAPPER}} .platebni-button' => 'background-color: {{VALUE}};',
                ],
            ]
        );

        $this->end_controls_section();




 // Sekce pro výběr zobrazených polí
$this->start_controls_section(
    'fields_section',
    [
        'label' => __( 'Pole formuláře', 'platebni-formular' ),
        'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
    ]
);

$this->add_control(
    'show_name',
    [
        'label' => __( 'Zobrazit pole Jméno', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'yes', // Zobrazeno jako výchozí
    ]
);

$this->add_control(
    'show_surname',
    [
        'label' => __( 'Zobrazit pole Příjmení', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'yes', // Zobrazeno jako výchozí
    ]
);

$this->add_control(
    'show_email',
    [
        'label' => __( 'Zobrazit pole Email', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'yes', // Zobrazeno jako výchozí
    ]
);

$this->add_control(
    'show_phone',
    [
        'label' => __( 'Zobrazit pole Telefonní číslo', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'no', // Skryto jako výchozí
    ]
);

$this->add_control(
    'show_address',
    [
        'label' => __( 'Zobrazit pole Adresa', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'yes', // Zobrazeno jako výchozí
    ]
);


$this->add_control(
    'show_company',
    [
        'label' => __( 'Zobrazit pole Firma', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'no', // Skryto jako výchozí
    ]
);


$this->add_control(
    'show_ico',
    [
        'label' => __( 'Zobrazit pole IČO', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'no', // Skryto jako výchozí
    ]
);

$this->add_control(
    'show_dic',
    [
        'label' => __( 'Zobrazit pole DIČ', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'no', // Skryto jako výchozí
    ]
);


// Přidání přepínače pro zobrazení pole slevového kódu
$this->add_control(
    'show_discount_code',
    [
        'label' => __( 'Zobrazit pole Slevový kód', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'yes', // Zobrazeno jako výchozí
    ]
);

// Přidání repeateru pro slevové kódy
$this->add_control(
    'discount_codes',
    [
        'label' => __( 'Slevové kódy', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::REPEATER,
        'fields' => [
            [
                'name' => 'code',
                'label' => __( 'Slevový kód', 'platebni-formular' ),
                'type' => \Elementor\Controls_Manager::TEXT,
                'default' => __( 'SLEVA20', 'platebni-formular' ),
            ],
            [
                'name' => 'discount',
                'label' => __( 'Sleva (%)', 'platebni-formular' ),
                'type' => \Elementor\Controls_Manager::NUMBER,
                'default' => 20,
                'min' => 1,
                'max' => 100,
                'step' => 1,
            ],
        ],
        'title_field' => '{{{ code }}} - {{{ discount }}}%',
        'add_button_text' => __( 'Přidat slevový kód', 'platebni-formular' ), // Změna textu tlačítka
        'condition' => [
            'show_discount_code' => 'yes',
        ],
    ]
);

$this->end_controls_section();



// Sekce pro nastavení po zaplacení (obsahuje e-mail i URL)
$this->start_controls_section(
    'after_payment_section',
    [
        'label' => __( 'Po zaplacení', 'platebni-formular' ),
        'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
    ]
);


// URL po zaplacení
$this->add_control(
    'navratova_url',
    [
        'label' => __( 'Adresa stránky po zaplacení', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => home_url('/diky'), // Dynamická URL s domovskou stránkou a /diky
        'placeholder' => __( 'Zadejte URL po zaplacení', 'platebni-formular' ),
    ]
);

// Předmět e-mailu
$this->add_control(
    'email_subject',
    [
        'label' => __( 'Předmět e-mailu', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => __( 'Povedlo se!', 'platebni-formular' ),
    ]
);

// Obsah e-mailu
$this->add_control(
    'email_body',
    [
        'label' => __( 'Obsah e-mailu', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXTAREA,
        'default' => __( 'Děkujeme za platbu. Váš produkt je zde: (zadejte url).', 'platebni-formular' ),
    ]
);

// E-mail odesílatele (mail-from)
//$this->add_control(
//    'email_from',
//    [
//        'label' => __( 'Váš e-mail, na který mohou zákazníci odpovědět', 'platebni-formular' ),
//       'type' => \Elementor\Controls_Manager::TEXT,
//        'default' => __( 'info@platebniformular.cz', 'platebni-formular' ),
//        'placeholder' => __( 'Zadejte e-mail odesílatele', 'platebni-formular' ),
//    ]
//);


// Jméno odesílatele (email_from_name)
$this->add_control(
    'email_from_name',
    [
        'label' => __( 'Jméno odesílatele', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => __( 'Ruda z Ostravy', 'platebni-formular' ),
        'placeholder' => __( 'Zadejte jméno odesílatele', 'platebni-formular' ),
    ]
);




// Checkbox pro vytvoření profilu
$this->add_control(
    'create_profile',
    [
        'label' => __( 'Poslat zákazníkovi přihlašovací údaje', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SWITCHER,
        'label_on' => __( 'Ano', 'platebni-formular' ),
        'label_off' => __( 'Ne', 'platebni-formular' ),
        'return_value' => 'yes',
        'default' => 'no',
    ]
);

// Pole URL po přihlášení, které se zobrazí pouze při zapnutém přepínači
$this->add_control(
    'login_url',
    [
        'label' => __( 'Adresa, kam pošlete zákazníka po přihlášení', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => '',
        'placeholder' => __( 'Zadejte URL', 'platebni-formular' ),
        'condition' => [
            'create_profile' => 'yes',
        ],
    ]
);

$this->end_controls_section();





// Sekce pro nastavení upomínky
$this->start_controls_section(
    'reminder_section',
    [
        'label' => __( 'Upomínka', 'platebni-formular' ),
        'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
    ]
);

// Upozornění nahoře
$this->add_control(
    'reminder_notice',
    [
        'type' => \Elementor\Controls_Manager::RAW_HTML,
        'raw' => __( '<strong>Upomínka bude odeslána po 3 dnech od objednání, pokud nebude platba dokončena.</strong>', 'platebni-formular' ),
        'content_classes' => 'reminder-notice',
    ]
);


// Předmět upomínky
$this->add_control(
    'reminder_subject',
    [
        'label' => __( 'Předmět upomínky', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => __( 'Nezaplacená objednávka', 'platebni-formular' ),
    ]
);

// Obsah upomínky
$this->add_control(
    'reminder_body',
    [
        'label' => __( 'Obsah upomínky',
 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXTAREA,
        'default' => __( 'Jejda, zjistili jsme, že Vaše objednávka není zaplacena. Byl snad s platbou nějaký problém? Jako omluvu posíláme slevový kód SLEVA20, který Vám poskytne příjemnou 20% slevu při dalším pokusu o zaplacení: (vložte odkaz na prodejní stránku).', 'platebni-formular' ),
    ]
);
$this->end_controls_section();

 

// Sekce pro výběr platební metody
$this->start_controls_section(
    'payment_method_section',
    [
        'label' => __( 'Platební metoda', 'platebni-formular' ),
        'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
    ]
);

// Přepínač: Platební metoda (Účet Fio / Brána ThePay)
$this->add_control(
    'payment_method',
    [
        'label' => __( 'Platební metoda', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SELECT,
        'default' => 'fio',
        'options' => [
            'fio' => __( 'Účet Fio', 'platebni-formular' ),
            'thepay' => __( 'Brána ThePay', 'platebni-formular' ),
        ],
    ]
);

$this->end_controls_section();





// Sekce pro nastavení Fio účtu
$this->start_controls_section(
    'fio_account_section',
    [
        'label' => __( 'Podrobnosti o Fio účtu', 'platebni-formular' ),
        'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
        'condition' => [
            'payment_method' => 'fio', // Zobrazení sekce pouze při výběru "Účet Fio"
        ],
    ]
);

// Číslo účtu
$this->add_control(
    'fio_account_number',
    [
        'label' => __( 'Číslo účtu', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => '',
        'description' => __( 'Zadejte číslo účtu bez kódu banky. Kód banky "/2010" je připojen automaticky.', 'platebni-formular' ),
    ]
);

// Token
$this->add_control(
    'fio_api_token',
    [
        'label' => __( 'API Token', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => '',
        'description' => __( 'Zadejte svůj Fio API token.', 'platebni-formular' ),
    ]
);

// Konec sekce
$this->end_controls_section();




// Sekce pro nastavení API
$this->start_controls_section(
    'api_section',
    [
        'label' => __( 'Nastavení platební brány ThePay', 'platebni-formular' ),
        'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
        'condition' => [
            'payment_method' => 'thepay', // Zobrazení sekce pouze při výběru ThePay
        ],
    ]
);

// Úvodní text
$this->add_control(
    'api_intro_text',
    [
        'type' => \Elementor\Controls_Manager::RAW_HTML,
        'raw' => __( 'Založte si platební bránu na <a href="https://www.thepay.cz/" target="_blank">thepay.eu</a> a zkopírujte implementační údaje:', 'platebni-formular' ),
        'content_classes' => 'api-intro-text',
    ]
);

// Project ID
$this->add_control(
    'project_id',
    [
        'label' => __( 'ID projektu', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => '',
    ]
);

// Merchant ID
$this->add_control(
    'merchant_id',
    [
        'label' => __( 'ID obchodníka', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => '',
    ]
);

// Heslo (Password)
$this->add_control(
    'api_password',
    [
        'label' => __( 'Heslo', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXT,
        'default' => '',
        'input_type' => 'password', // Přidáme typ inputu jako 'password'
    ]
);

// Výběr prostředí (Demo / Ostré)
$this->add_control(
    'environment',
    [
        'label' => __( 'Účet', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::SELECT,
        'default' => 'demo',
        'options' => [
            'demo' => __( 'Demo', 'platebni-formular' ),
            'production' => __( 'Ostrý', 'platebni-formular' ),
        ],
    ]
);

// Potlačíme warning z file_get_contents pomocí @ a přidáme jednoduchý fallback
$public_ip = @file_get_contents('https://api.ipify.org');

if ( $public_ip === false || $public_ip === '' ) {
    $public_ip = 'Nepodařilo se zjistit IP adresu';
}


// Zobrazení veřejné IP adresy serveru
$this->add_control(
    'server_ip',
    [
        'label' => __( 'Přidejte v ThePay IP adresu:', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::RAW_HTML,
        'raw' => '<strong style="display: block; margin-bottom: 10px;">' . esc_html($public_ip) . '</strong>',
    ]
);

$this->end_controls_section();





  // Sekce pro Meta Pixel
$this->start_controls_section(
    'meta_pixel_section',
    [
        'label' => __( 'Nastavení Meta Pixelu', 'platebni-formular' ),
        'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
    ]
);

// Meta Pixel kód (JS)
$this->add_control(
    'meta_pixel_code',
    [
        'label' => __( 'Meta Pixel kód (JS)', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXTAREA,
        'default' => '',
        'placeholder' => __( 'Vložte celý kód Meta Pixelu', 'platebni-formular' ),
        'description' => __( 'Používá se pro PageView / InitiateCheckout (frontend).', 'platebni-formular' ),
    ]
);

// Meta CAPI Access Token
$this->add_control(
    'meta_capi_token',
    [
        'label' => __( 'Meta CAPI Access Token', 'platebni-formular' ),
        'type' => \Elementor\Controls_Manager::TEXTAREA,
        'default' => '',
        'placeholder' => __( 'Vložte Meta CAPI access token', 'platebni-formular' ),
        'description' => __( 'Používá se pro serverový Purchase event (CAPI).', 'platebni-formular' ),
    ]
);

$this->end_controls_section();







    }
}

protected function render() {
    global $wpdb;

    // Inicializace proměnné
    $show_overlay = false;

    // Uložení informace, že widget je použit (OK)
    if (!get_option('custom_widget_used')) {
        update_option('custom_widget_used', true);
    }

    // Získání nastavení widgetu
    $settings = $this->get_settings_for_display();
    $amount = esc_attr($settings['amount']);
    $merchant_id = esc_attr($settings['merchant_id']);
    $project_id = esc_attr($settings['project_id']);
    $api_password = esc_attr($settings['api_password']);
    $environment = isset($settings['environment']) ? esc_attr($settings['environment']) : 'demo';
//    $email_from = esc_attr($settings['email_from']);
    $email_from_name = esc_attr($settings['email_from_name']);
    $email_from = 'noreply.platby@gmail.com';
    $navratova_url = esc_attr($settings['navratova_url']);
    $create_profile = isset($settings['create_profile']) && $settings['create_profile'] === 'yes' ? 1 : 0;
    $nonce = wp_create_nonce('discount_nonce');
    $login_url = esc_attr($settings['login_url']);
    $fio_account_number = esc_attr($settings['fio_account_number']);
    $fio_api_token = esc_attr($settings['fio_api_token']);

    // ✅ Ukládej do options jen adminovi a jen v editoru/preview (aby se to nepřepisovalo návštěvníky)
    $is_edit_mode = (class_exists('\Elementor\Plugin') && \Elementor\Plugin::instance()->editor->is_edit_mode());
    $is_preview   = isset($_GET['elementor-preview']);
    $can_save_options = is_user_logged_in() && current_user_can('manage_options') && ($is_edit_mode || $is_preview || is_admin());

    if ($can_save_options) {

        // Uložení čísla účtu do options, pokud je vyplněno a změnilo se
        if (!empty($fio_account_number) && get_option('fio_account_number') !== $fio_account_number) {
            update_option('fio_account_number', $fio_account_number);
        }

        // Uložení FIO API tokenu do options, pokud je vyplněno a změnilo se
        if (!empty($fio_api_token) && get_option('fio_api_token') !== $fio_api_token) {
            update_option('fio_api_token', $fio_api_token);
        }

        // Uložení ThePay hodnot do options jen když se změnily (zabrání přepisování mezi formuláři)
        if (!empty($merchant_id) && get_option('my_merchant_id') !== $merchant_id) {
            update_option('my_merchant_id', $merchant_id);
        }
        if (!empty($project_id) && get_option('my_project_id') !== $project_id) {
            update_option('my_project_id', $project_id);
        }
        if (!empty($api_password) && get_option('my_api_password') !== $api_password) {
            update_option('my_api_password', $api_password);
        }
        if (!empty($environment) && get_option('my_environment') !== $environment) {
            update_option('my_environment', $environment);
        }

        // ✅ Meta Pixel ID + CAPI token (uloží se globálně, ale jen adminem v editoru)
        if (!empty($settings['meta_pixel_id'])) {
            $meta_pixel_id = sanitize_text_field($settings['meta_pixel_id']);
            if (get_option('meta_pixel_id') !== $meta_pixel_id) {
                update_option('meta_pixel_id', $meta_pixel_id);
            }
        }

        if (!empty($settings['meta_capi_token'])) {
            $meta_capi_token = sanitize_textarea_field($settings['meta_capi_token']);
            if (get_option('meta_capi_token') !== $meta_capi_token) {
                update_option('meta_capi_token', $meta_capi_token);
            }
        }
    }

    // Získání Meta Pixel kódu z nastavení (beze změny)
    if (!empty($settings['meta_pixel_code'])) {
        echo $settings['meta_pixel_code'];
    }

    // Kontrola počtu zaplacených objednávek a existence parent_payment_uid
    $paid_orders_count = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}zakaznici WHERE payment_status = 'paid' AND api_url NOT LIKE '%demo%'");
    $parent_payment_uid = get_option('parent_payment_uid', '');

    // Nastavení překrytí pouze na živém webu, pokud není nastaven parent_payment_uid
    $show_overlay = (!\Elementor\Plugin::instance()->editor->is_edit_mode() && $paid_orders_count >= 5 && empty($parent_payment_uid));



    ?>

    <!-- HTML formulář na webu -->
    <div style="text-align:center; position: relative;">
        <?php if ($show_overlay): ?>
            <!-- Překrytí formuláře -->
            <div id="overlay" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); color: white; display: flex; align-items: center; justify-content: center; z-index: 10;">
                <p style="font-size: 20px; font-weight: bold;">Zadejte své platební údaje pro poplatek za platební formulář</p>
            </div>
        <?php endif; ?>



            <form id="payment-form" method="POST" action="<?php echo home_url('/zaplatit.php'); ?>" target="_blank" style="width: 66%; margin: 0 auto;">
            <?php wp_nonce_field('platebni_formular_nonce'); ?>



            <!-- Pole pro vyplnění formuláře -->


            <?php if ('yes' === $settings['show_name']): ?>
                <input type="text" name="first_name" placeholder="Jméno" style="width: 100%; margin-bottom: 10px;">
            <?php endif; ?>


            <?php if ('yes' === $settings['show_surname']): ?>
                <input type="text" name="surname" placeholder="Příjmení" style="width: 100%; margin-bottom: 10px;">
            <?php endif; ?>

            <?php if ('yes' === $settings['show_email']): ?>
                <input type="email" name="email" placeholder="Email" style="width: 100%; margin-bottom: 10px;" required>
            <?php endif; ?>

            <?php if ('yes' === $settings['show_phone']): ?>
                <input type="tel" name="phone" placeholder="Telefonní číslo" style="width: 100%; margin-bottom: 10px;">
            <?php endif; ?>

            <?php if ('yes' === $settings['show_address']): ?>
                <input type="text" name="address" placeholder="Adresa" style="width: 100%; margin-bottom: 10px;">
            <?php endif; ?>
    
         <?php if ('yes' === $settings['show_company']): ?>
        <input type="text" name="company" placeholder="Firma" style="width: 100%; margin-bottom: 10px;">
        <?php endif; ?>

          <?php if ('yes' === $settings['show_ico']): ?>
        <input type="text" name="ico" placeholder="IČO" style="width: 100%; margin-bottom: 10px;">
         <?php endif; ?>

         <?php if ('yes' === $settings['show_dic']): ?>
        <input type="text" name="dic" placeholder="DIČ" style="width: 100%; margin-bottom: 10px;">
         <?php endif; ?>

            <?php if ('yes' === $settings['show_discount_code']): ?>
                <input type="text" id="discount_code" name="discount_code" placeholder="Slevový kód" style="width: 100%; margin-bottom: 10px;">
            <?php endif; ?>


<!-- Zobrazení škrtnuté ceny nad běžnou cenou -->
<?php if (!empty($settings['crossed_amount'])): ?>
    <div id="crossed-price" style="text-decoration: line-through; color: black; margin-bottom: 5px;">
        <?php echo number_format($settings['crossed_amount'], 0, ',', ' '); ?> Kč
    </div>
<?php endif; ?>



            <div class="platebni-castka" id="original-price" style="margin-bottom: 10px;"><?php echo number_format($amount, 0, ',', ' '); ?> Kč</div>

            <input type="hidden" id="final_amount" name="amount" value="<?php echo $amount; ?>">
            <input type="hidden" name="merchant_id" value="<?php echo $merchant_id; ?>">
            <input type="hidden" name="project_id" value="<?php echo $project_id; ?>">
            <input type="hidden" name="api_password" value="<?php echo $api_password; ?>">
            <input type="hidden" name="environment" value="<?php echo $environment; ?>">
            <input type="hidden" name="email_subject" value="<?php echo esc_attr($settings['email_subject']); ?>">
            <input type="hidden" name="email_body" value="<?php echo esc_attr($settings['email_body']); ?>">
            <input type="hidden" name="product_name" value="<?php echo esc_attr($settings['product_name']); ?>">
            <input type="hidden" name="email_from" value="<?php echo esc_attr($email_from); ?>"> 
            <input type="hidden" name="email_from_name" value="<?php echo esc_attr($email_from_name); ?>">
            <input type="hidden" name="navratova_url" value="<?php echo esc_attr($navratova_url); ?>">
            <input type="hidden" name="reminder_subject" value="<?php echo esc_attr($settings['reminder_subject']); ?>">
            <input type="hidden" name="reminder_body" value="<?php echo esc_attr($settings['reminder_body']); ?>">
            <input type="hidden" name="vytvorit_profil" value="<?php echo $create_profile; ?>">
            <input type="hidden" name="login_url" value="<?php echo esc_attr($login_url); ?>">
            <input type="hidden" name="payment_method" value="<?php echo esc_attr($settings['payment_method']); ?>">

          
            <button type="submit" class="platebni-button">
                <?php echo esc_html($settings['button_text']); ?>
            </button>
        </form>
    </div>

   <!-- Neměnný text s odkazem pod tlačítkem -->
   <p style="margin-top: 10px; font-size: 11px; color: #888; text-align: center;">
    Platební formulář vytvořil <a href="https://platebniformular.cz" target="_blank" style="color: #888; text-decoration: underline;">PlatBot</a>
   </p>

  <!-- Script for Facebook Pixel InitiateCheckout tracking with nonce -->
<script nonce="<?php echo $nonce; ?>">
document.addEventListener('DOMContentLoaded', function () {
    var btn = document.querySelector('.platebni-button');
    if (!btn) return;

    btn.addEventListener('click', function() {
        if (typeof fbq !== 'undefined') {
            fbq('track', 'InitiateCheckout', {
                value: <?php echo json_encode((float)$amount); ?>,
                currency: 'CZK'
            });
        }
    });
});
</script>

   <!-- Script for input type password change with nonce -->
   <script nonce="<?php echo $nonce; ?>">
    document.addEventListener('DOMContentLoaded', function() {
        const passwordField = document.querySelector('[data-setting="api_password"]');
        if (passwordField) {
            passwordField.setAttribute('type', 'password');
        }
    });
   </script>

 <script nonce="<?php echo $nonce; ?>">
    document.getElementById('discount_code').addEventListener('input', function() {
        var discountCode = this.value.trim();
        var originalPrice = <?php echo $amount; ?>;
        var finalPrice = originalPrice;

        // Načteme slevové kódy z nastavení Elementoru, pokud jsou definované a platné
        var discounts = {};
        <?php if (!empty($settings['discount_codes']) && is_array($settings['discount_codes'])): ?>
            <?php foreach ($settings['discount_codes'] as $code) : ?>
                discounts['<?php echo esc_js($code['code']); ?>'] = <?php echo esc_js($code['discount']); ?> / 100;
            <?php endforeach; ?>
        <?php endif; ?>

        // Pokud je slevový kód platný, uprav cenu
        if (discounts.hasOwnProperty(discountCode)) {
            finalPrice = originalPrice * (1 - discounts[discountCode]);
        }

        // Aktualizace zobrazené ceny a hodnoty v hidden inputu
        document.getElementById('original-price').innerHTML = Math.round(finalPrice) + ' Kč';
        document.getElementById('final_amount').value = Math.round(finalPrice);
    });
</script>


   <style>




.platebni-button {
    background-color: <?php echo isset($settings['button_color']) ? esc_attr($settings['button_color']) : '#34bd19'; ?>;
    color: white;
    border: none;
    border-radius: 30px;
    padding: 15px 30px;
    font-size: 18px;
    cursor: pointer;
    text-align: center; /* Vycentrování textu */
    white-space: normal; /* Povolení zalamování textu */
    word-wrap: break-word; /* Rozdělení dlouhých slov */
    max-width: 100%; /* Zajištění maximální šířky tlačítka */
    overflow: hidden; /* Skrytí přetečení */
    display: inline-block; /* Zajištění správného chování při změně velikosti */
    box-sizing: border-box; /* Správné započítávání paddingu do šířky */
}





        .platebni-castka {
            font-size: 16px;
            margin-bottom: 10px;
        }

        .platebni-button:hover {
            opacity: 0.9;
        }

        form input {
            margin: 10px 0;
            padding: 10px;
            width: 100%;
            border: none !important; /* Zajistí odstranění všech okrajů */
            border-bottom: 1px solid #aaa !important; /* Přidá spodní čáru */
            border-radius: 0 !important; /* Zajistí, že nejsou zaoblené rohy */
            background: none;
            outline: none;
            transition: border-bottom 0.2s ease-in-out, font-size 0.2s ease-in-out;
            font-size: 15px;
            padding-left: 10px;
            color: #666666 !important;
        }

        form input:hover {
            border-bottom: 1px solid #000 !important; /* Zvýraznění spodní čáry při hoveru */
        }

        form input:focus {
            border-bottom: 2px solid #000 !important; /* Zvýraznění při zaměření s tlustší čárou */
        }

        form input::placeholder {
            color: #777777 !important; /* Tmavší barva placeholderu */
            transition: font-size 0.05s ease-in-out; /* Přechod pro efekt zmenšení */
        }

        form input:focus {
            font-size: 14px; /* Zmenšení velikosti písma při kliknutí */
        }

        /* Zvětšení textu, když je pole vyplněné, a zajištění černé barvy */
        form input:not(:placeholder-shown) {
            font-size: 16px; /* Zvětšení velikosti písma pro vyplněný text */
            color: #000000 !important;
        }
    </style>

    <?php
}
}

