<?php
// Načtení WordPress prostředí z kořenového adresáře
$wordpress_path = dirname(__FILE__, 4) . '/wp-load.php';

if (file_exists($wordpress_path)) {
    require_once $wordpress_path;
} else {
    exit("Chyba: wp-load.php nebyl nalezen.");
}

// Načtení TCPDF autoload z vendor_faktura adresáře (technickcom/tcpdf)
$tcpdf_autoload_path = dirname(__FILE__) . '/vendor_faktura/tecnickcom/tcpdf/tcpdf.php';

if (file_exists($tcpdf_autoload_path)) {
    require_once $tcpdf_autoload_path;
} else {
    exit("Chyba: Autoloader pro TCPDF nebyl nalezen.");
}

// Načtení ThePay API autoload z vendor adresáře
$autoload_path = dirname(__FILE__) . '/vendor/autoload.php';

if (file_exists($autoload_path)) {
    require_once $autoload_path;
} else {
    exit("Chyba: Autoloader pro ThePay API nebyl nalezen.");
}

// Načtení PHPMailer autoload z vendor_mailer adresáře
$phpmailer_autoload_path = dirname(__FILE__) . '/vendor_mailer/autoload.php';

if (file_exists($phpmailer_autoload_path)) {
    require_once $phpmailer_autoload_path;
} else {
    exit("Chyba: Autoloader pro PHPMailer nebyl nalezen.");
}

// Načtení potřebných tříd
use ThePay\ApiClient\TheConfig;
use ThePay\ApiClient\TheClient;
use ThePay\ApiClient\Service\ApiService;
use ThePay\ApiClient\Service\SignatureService;
use GuzzleHttp\Client as GuzzleHttpClient;
use GuzzleHttp\Psr7\HttpFactory;

// Načtení PHPMailer tříd
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// Získání payment_uid z URL
if (!isset($_GET['payment_uid'])) {
    exit("Chybí parametr payment_uid.");
}
$payment_uid = $_GET['payment_uid'];

// Načtení zákaznických dat z databáze na základě payment_uid
global $wpdb;
$table_name = $wpdb->prefix . 'zakaznici';
$customer_data = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table_name WHERE uid = %s", $payment_uid));
$login_url = esc_url($customer_data->login_url);
error_log("Přijata login_url {$login_url}");

// Kontrola, zda bylo nalezeno zákaznické data
if (!$customer_data) {
    exit("Zákazník nebyl nalezen pro UID: " . esc_html($payment_uid));
}

$vytvorit_profil = $wpdb->get_var($wpdb->prepare("SELECT vytvorit_profil FROM $table_name WHERE uid = %s", $payment_uid));

// Nastavení proměnné create_profile na true, pokud je vytvorit_profil rovno 1
$create_profile = ($vytvorit_profil == 1);

// Zkontrolujeme, zda jsou přítomny potřebné parametry
if (isset($_GET['project_id']) && isset($_GET['payment_uid']) && isset($_GET['type'])) {
    // Získání údajů z URL
    $project_id = $_GET['project_id'];
    $payment_uid = $_GET['payment_uid'];
    $notification_type = $_GET['type'];

    // Zalogování přijaté notifikace (pro kontrolu ve vývoji)
    error_log("Přijata notifikace: project_id={$project_id}, payment_uid={$payment_uid}, type={$notification_type}");
}

// Kontrola, zda je stav platby již "paid"
if ($customer_data->payment_status === 'paid') {
    error_log("Platba pro UID {$payment_uid} již byla zaplacena. Končím a nic nedělám, protože jsem o minutu pozdě.");
    exit("Platba již byla zaplacena.");
} else {
    error_log("Platba pro UID {$payment_uid} ještě nikdy nebyla zaplacena, jdu se jí podívat na zoubek, jestli náhodou už.");
}

// Načtení dynamických údajů o dodavateli z nastavení pluginu
$faktury_jmeno = get_option('faktury_jmeno', 'Firma s.r.o.');
$faktury_adresa = get_option('faktury_adresa', 'Ulice 123, Město 456 78');
$faktury_ico = get_option('faktury_ico', '12345678');
$faktury_email = get_option('faktury_email', 'info@firma.cz');
$faktury_web = get_option('faktury_web', 'www.firma.cz');
$faktury_logo = get_option('faktury_logo', '');
$faktury_podpis = get_option('faktury_podpis', '');

// Konfigurace ThePay API dynamicky načtená z databáze
$merchant_id = $customer_data->merchant_id ?? null;
$project_id = $customer_data->project_id ?? null;
$api_password = $customer_data->api_password ?? null;
$api_url = $customer_data->api_url ?? null;
$gate_url = $customer_data->gate_url ?? null;

// Kontrola, zda jsou všechny potřebné údaje dostupné
if (!$merchant_id || !$project_id || !$api_password || !$api_url || !$gate_url) {
    exit("Chybí potřebné údaje pro konfiguraci platební brány.");
}

$config = new TheConfig(
    $merchant_id,
    $project_id,
    $api_password,
    $api_url,
    $gate_url
);

$signatureService = new SignatureService($config);
$httpClient = new GuzzleHttpClient();
$requestFactory = new HttpFactory();
$streamFactory = new HttpFactory();

$apiService = new ApiService($config, $signatureService, $httpClient, $requestFactory, $streamFactory);
$thePayClient = new TheClient($config, $apiService);



// Zkontrolovat, zda se jedná o demo účet
$is_demo = (strpos($customer_data->api_url, 'demo') !== false);
error_log("API URL z databáze: " . $customer_data->api_url);
error_log("Kontrola API URL, \$is_demo: " . ($is_demo ? 'true' : 'false'));



try {
    // Získání detailů platby
    $paymentDetail = $thePayClient->getPayment($payment_uid);
    $payment_state = $paymentDetail->getState();
    $payment_method = $paymentDetail->getPaymentMethod();


 // >>> META PURCHASE <<<  
    // Pošli Purchase jen při první změně na "paid"
    if ($payment_state === 'paid' && $customer_data->payment_status !== 'paid') {
        send_meta_purchase_min($customer_data, $payment_uid);
    }
    // >>> /META PURCHASE <<<



    // Aktualizace stavu platby a metody v tabulce zákazníků
    $wpdb->update(
        $table_name,
        array(
            'payment_status' => $payment_state,
            'payment_method' => $payment_method
        ),
        array('uid' => $payment_uid)
    );

    if ($paymentDetail->getState() === 'paid') {
        error_log("{$payment_uid} - Platba potvrzena, pokračuji s generováním faktury");


if (!$is_demo) {
    $remote_url = 'https://platebniformular.cz/record_sale.php'; // URL vzdáleného serveru
    
    // Adding the website URL to the request
    $site_url = get_site_url(); // Get the WordPress site URL
    
    $response = wp_remote_post($remote_url, array(
        'method'    => 'POST',
        'body'      => array(
            'amount'    => $customer_data->amount,
            'site_url'  => $site_url,  // Send the website URL
        ),
        'timeout'   => 10,
    ));
    
    // Check for errors in the response
    if (is_wp_error($response)) {
        $error_message = $response->get_error_message();
        error_log('Error sending data to remote server: ' . $error_message);  // Log the error message
    } else {
        // Log the successful response for debugging
        error_log('Response from remote server: ' . print_r($response, true));
    }
}


        // Generování čísla faktury s označením "DEMO" pro demo platby
        $year = date('Y');
        $invoice_number = ($is_demo ? 'DEMO-' : '') . $year . str_pad($customer_data->id, 4, '0', STR_PAD_LEFT);

        // Uložení čísla faktury do databáze
        $wpdb->update(
            $table_name,
            array('invoice_number' => $invoice_number),
            array('uid' => $payment_uid)
        );


// Funkce pro konverzi obrázku na 8bitovou hloubku a odstranění průhlednosti
function convertToJpegWithoutAlpha($imagePath) {
    $imageInfo = getimagesize($imagePath);
    if ($imageInfo['mime'] === 'image/png') {
        $image = imagecreatefrompng($imagePath);
    } elseif ($imageInfo['mime'] === 'image/jpeg') {
        return $imagePath; // Pokud je již JPEG, vrátí původní obrázek
    } else {
        return $imagePath; // Pokud není PNG nebo JPEG, vrátí původní obrázek
    }
    
    // Vytvoří nový obraz bez průhlednosti
    $newImage = imagecreatetruecolor(imagesx($image), imagesy($image));
    $whiteBackground = imagecolorallocate($newImage, 255, 255, 255);
    imagefill($newImage, 0, 0, $whiteBackground); // Bílá barva pozadí
    imagecopy($newImage, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));

    $outputPath = sys_get_temp_dir() . '/' . uniqid() . '.jpg';
    imagejpeg($newImage, $outputPath, 90); // Uloží obrázek jako JPEG s bílým pozadím
    imagedestroy($image);
    imagedestroy($newImage);
    return $outputPath;
}

// Načtení nastavení plátce DPH, DIČ 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
$vat_id = get_option('faktury_dic', ''); // DIČ dodavatele

// Výpočet cen
$total_with_vat = floatval($customer_data->amount); // Cena s DPH
$vat_amount = $is_vat_payer ? ($total_with_vat * $vat_rate) / (100 + $vat_rate) : 0; // Daňová částka
$total_without_vat = $is_vat_payer ? $total_with_vat - $vat_amount : $total_with_vat; // Cena bez DPH

// Generování faktury pomocí TCPDF
$pdf = new TCPDF();
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Platebni formular');
$pdf->SetTitle('Faktura');
$pdf->SetSubject('Faktura');
$pdf->SetFont('freeserif', '', 12);
$pdf->AddPage();

// Přidání nápisu "DEMO" přes celou fakturu, pokud je demo účet
if ($is_demo) {
    $pdf->SetTextColor(255, 0, 0);
    $pdf->SetFont('freeserif', 'B', 100);
    $pdf->SetAlpha(0.1);
    $pdf->Text(40, 150, 'DEMO');
    $pdf->SetAlpha(1);
    $pdf->SetTextColor(0, 0, 0);
    $pdf->SetFont('freeserif', '', 12);
}

// Definování cesty k zástupným obrázkům a konverze na JPEG bez průhlednosti
$placeholder_logo = convertToJpegWithoutAlpha(__DIR__ . '/white1.png');
$placeholder_signature = convertToJpegWithoutAlpha(__DIR__ . '/white2.png');

// Vložení loga nebo zástupného obrázku, pokud není logo dostupné
$logo_path = !empty($faktury_logo) ? convertToJpegWithoutAlpha($faktury_logo) : $placeholder_logo;
$pdf->Image($logo_path, 10, 20, 0, 30, 'JPEG', '', 'T', false, 300, '', false, false, 0, false, false, false);
$pdf->Ln(20);

// Nastavení nadpisu podle režimu (demo/ostrý)
$invoice_title = $is_demo ? "Toto není Faktura č. $invoice_number" : "Faktura č. $invoice_number";

// Podnadpis DPH
$vat_status = $is_vat_payer ? 'Plátce DPH' : 'Neplátce DPH';

// HTML obsah faktury
$html = '
<table border="0" cellspacing="0" cellpadding="5">
    <!-- Nadpis faktury nebo upozornění, že se nejedná o fakturu -->
    <tr><td style="text-align: right; font-size: 16pt; font-weight: bold;">' . $invoice_title . '</td></tr>
    <tr><td style="text-align: right; font-size: 10pt; font-style: italic;">' . $vat_status . '</td></tr>
    <tr><td style="text-align: right; border-bottom: 3px solid #000; padding-bottom: 10px;"></td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="20">
    <tr>
        <td style="width: 50%;"><h2>Dodavatel</h2>
            <p><strong>Jméno:</strong> ' . esc_html($faktury_jmeno) . '</p>
            <p><strong>Adresa:</strong> ' . esc_html($faktury_adresa) . '</p>
            <p><strong>IČO:</strong> ' . esc_html($faktury_ico) . '</p>';

// Přidání DIČ, pokud je dodavatel plátce DPH
if ($is_vat_payer && !empty($vat_id)) {
    $html .= '<p><strong>DIČ:</strong> ' . esc_html($vat_id) . '</p>';
}

$html .= '<p><strong>E-mail:</strong> ' . esc_html($faktury_email) . '</p>
            <p><strong>Web:</strong> ' . esc_html($faktury_web) . '</p>
        </td>
        <td style="width: 50%;"><h2>Odběratel</h2>';

// Přidání údajů odběratele
if (!empty($customer_data->first_name) || !empty($customer_data->surname)) {
    $html .= '<p><strong>Jméno:</strong> ' . esc_html($customer_data->first_name . ' ' . $customer_data->surname) . '</p>';
}
if (!empty($customer_data->email)) {
    $html .= '<p><strong>E-mail:</strong> ' . esc_html($customer_data->email) . '</p>';
}
if (!empty($customer_data->address)) {
    $html .= '<p><strong>Adresa:</strong> ' . esc_html($customer_data->address) . '</p>';
}
if (!empty($customer_data->company)) {
    $html .= '<p><strong>Firma:</strong> ' . esc_html($customer_data->company) . '</p>';
}
if (!empty($customer_data->ico)) {
    $html .= '<p><strong>IČO:</strong> ' . esc_html($customer_data->ico) . '</p>';
}
if (!empty($customer_data->dic)) {
    $html .= '<p><strong>DIČ:</strong> ' . esc_html($customer_data->dic) . '</p>';
}


$html .= '</td></tr></table>
<hr style="border: 1px solid #000; margin-top: 20px;">';

// Přidání tabulky s cenami
if ($is_vat_payer) {
    // Tabulka pro plátce DPH
    $html .= '
    <table border="0" cellspacing="10" cellpadding="5">
        <tr>
            <td style="width: 40%; font-weight: bold;">Popis</td>
            <td style="width: 20%; font-weight: bold; text-align: right;">Cena bez DPH</td>
            <td style="width: 20%; font-weight: bold; text-align: right;">Daň ' . ($vat_rate > 0 ? number_format($vat_rate, 0) . ' %' : '') . '</td>
            <td style="width: 20%; font-weight: bold; text-align: right;">Cena s DPH</td>
        </tr>
        <tr>
            <td>' . esc_html($customer_data->product_name) . '</td>
            <td style="text-align: right;">' . number_format($total_without_vat, 2, ',', ' ') . ' Kč</td>
            <td style="text-align: right;">' . number_format($vat_amount, 2, ',', ' ') . ' Kč</td>
            <td style="text-align: right;">' . number_format($total_with_vat, 2, ',', ' ') . ' Kč</td>
        </tr>
    </table>';
} else {
    // Tabulka pro neplátce DPH
    $html .= '
    <table border="0" cellspacing="10" cellpadding="5">
        <tr>
            <td style="width: 50%; font-weight: bold;">Popis</td>
            <td style="width: 50%; font-weight: bold; text-align: right;">Cena</td>
        </tr>
        <tr>
            <td>' . esc_html($customer_data->product_name) . '</td>
            <td style="text-align: right;">' . number_format($total_with_vat, 2, ',', ' ') . ' Kč</td>
        </tr>
    </table>';
}

$html .= '
<hr style="border: 1px solid #000; margin-top: 20px;">
<table border="0" cellspacing="0" cellpadding="5" style="margin-top: 50px;">
    <tr>
        <td style="width: 50%;"></td>
        <td style="width: 50%; text-align: right;">
            <p><strong style="font-size: 14pt;">Celkem: ' . number_format($total_with_vat, 2, ',', ' ') . ' Kč</strong></p>
            <p>Zaplaceno: ' . date('j. n. Y') . '</p>
        </td>
    </tr>
</table>';

// Vložení obsahu faktury
$pdf->writeHTML($html, true, false, true, false, '');

// Vložení podpisu nebo zástupného obrázku, pokud není podpis dostupné
$signature_path = !empty($faktury_podpis) ? convertToJpegWithoutAlpha($faktury_podpis) : $placeholder_signature;
$pdf->Image($signature_path, 120, 240, 60, 0, 'JPEG', '', 'T', false, 300, '', false, false, 0, false, false, false);





        // Uložení faktury do souboru
        $invoices_dir = ABSPATH . 'invoices_me';
        if (!is_dir($invoices_dir)) {
            mkdir($invoices_dir, 0755, true);
        }

        $file_path = $invoices_dir . '/faktura_' . $invoice_number . '.pdf';
        $pdf->Output($file_path, 'F');







// Načtení product_name samostatně z databáze pro kontrolu, pokud není již v $customer_data
$product_name = $wpdb->get_var($wpdb->prepare("SELECT product_name FROM $table_name WHERE uid = %s", $payment_uid));

if (!$product_name) {
    error_log("Hodnota product_name v databázi je prázdná nebo nenalezena.");
} else {
    error_log("Hodnota product_name načtená z databáze: $product_name");
    $customer_data->product_name = $product_name; // Doplní hodnotu product_name do $customer_data
}

// Záznam hodnoty product_name, abychom ověřili, zda je správně nastavena
error_log("Hodnota product_name po načtení: " . (isset($customer_data->product_name) ? $customer_data->product_name : "není nastavena"));




$login_info = '';
if ($create_profile == 1) {
    $role_name = $customer_data->product_name; // Přesný název role (včetně velkých písmen)
    error_log("Přiřazuji uživatelskou roli založenou na názvu produktu: $role_name");

    // Pokud role neexistuje, vytvoří ji
    if (!get_role($role_name)) {
        add_role($role_name, $role_name, [
            'read' => true,
            'edit_posts' => false,
            'delete_posts' => false,
            'publish_posts' => false,
        ]);
        error_log("Role '$role_name' byla vytvořena.");
    } else {
        error_log("Role '$role_name' již existuje.");
    }

    // Načtení uživatele podle e-mailu
    $user = get_user_by('email', $customer_data->email);

    if ($user) {
        // Přidání role uživateli
        if (!in_array($role_name, $user->roles)) {
            $user->add_role($role_name);
            error_log("Role '$role_name' byla přidána uživateli s ID {$user->ID}.");
        } else {
            error_log("Uživatel s ID {$user->ID} již má roli '$role_name'.");
        }

        // Přihlašovací údaje pro existujícího uživatele
        $login_info = "<br><br><strong>Přihlašovací údaje:</strong><br>
        Uživatel: {$customer_data->email}<br>
        Heslo: vaše stávající heslo<br><br>
        <a href='" . esc_url(wp_login_url($customer_data->login_url)) . "' style='display: inline-block; padding: 10px 20px; margin-top: 20px; background-color: #4CAF50; color: white; text-decoration: none; border-radius: 5px;'>Přihlásit se</a>";
    } else {
        // Vytvoření nového uživatele
        $generated_password = 'anadfnd36';
        $userdata = [
            'user_login' => $customer_data->email,
            'user_email' => $customer_data->email,
            'role'       => $role_name,
            'user_pass'  => $generated_password,
        ];

        $user_id = wp_insert_user($userdata);

        if (!is_wp_error($user_id)) {
            error_log("Uživatel s ID $user_id byl úspěšně vytvořen s rolí: $role_name.");
            $login_info = "<br><br><strong>Přihlašovací údaje:</strong><br>
            Uživatel: {$customer_data->email}<br>
            Heslo: {$generated_password}<br><br>
            <a href='" . esc_url(wp_login_url($customer_data->login_url)) . "' style='display: inline-block; padding: 10px 20px; margin-top: 20px; background-color: #4CAF50; color: white; text-decoration: none; border-radius: 5px;'>Přihlásit se</a>";
        } else {
            $error_message = $user_id->get_error_message();
            error_log("Chyba při vytváření uživatele: $error_message");
        }
    }
}




        // Odeslání e-mailu s fakturou
        $mail = new PHPMailer(true);
        try {
    $mail->isSMTP();
    $mail->Host = 'smtp.gmail.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'noreply.platby@gmail.com'; 
    $mail->Password = 'cimjkhsbhnvnscww'; 
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 587;
 
           
            $mail->CharSet = 'UTF-8';
            $mail->isHTML(true);

            // Nastavení výchozí adresy, pokud není email_from definováno
            $default_email_from = 'info@platebniformular.cz';
            $email_from = !empty($customer_data->email_from) ? $customer_data->email_from : $default_email_from;
            $email_from_name = !empty($customer_data->email_from_name) ? $customer_data->email_from_name : $email_from;
           
$faktury_email = get_option('faktury_email', '');
// Zkontrolovat, zda je email platný
if (!empty($faktury_email) && filter_var($faktury_email, FILTER_VALIDATE_EMAIL)) {
    // Nastavit Reply-To pouze pokud je e-mail validní
    $mail->addReplyTo($faktury_email, $email_from_name);
} else {
    // Pokud není validní, Reply-To se nenastaví
    error_log("Reply-To se nenastavuje, protože 'faktury_email' je prázdný nebo neplatný.");
}

          
            $mail->setFrom($email_from, $email_from_name);
            $mail->addAddress($customer_data->email);
            $mail->Subject = $customer_data->email_subject;
            $mail->Body = nl2br($customer_data->email_body) . $login_info;
            $mail->addAttachment($file_path);
            $mail->send();
            error_log("E-mail s fakturou a přihlašovacími údaji úspěšně odeslán na {$customer_data->email}.");
           // Přidání přihlašovacích údajů do těla e-mailu, pokud jsou k dispozici
           $email_body_with_login_info = $customer_data->email_body . $login_info;

     // Uložení informací o odeslaném e-mailu do tabulky
      global $wpdb;
      $wpdb->insert(
      $wpdb->prefix . 'zakaznici_email_log',
      array(
        'email_subject' => $customer_data->email_subject,
        'email_body' => $email_body_with_login_info,
        'email_address' => $customer_data->email,
        'sent_at' => current_time('mysql')
        ),
        array('%s', '%s', '%s', '%s')
        );


            // Dynamické přesměrování na navratova_url po úspěšném odeslání e-mailu
            if (!empty($customer_data->navratova_url)) {
                header("Location: " . esc_url($customer_data->navratova_url));
            } else {
                header("Location: /diky");
            }


// Odeslání e-mailu vlastníkovi webu
if (!empty($owner_email = get_option('owner_email', ''))) {
    $mail_owner = new PHPMailer(true); // Nová instance PHPMailer
    try {
        // Nastavení SMTP pro druhý e-mail
        $mail_owner->isSMTP();
        $mail_owner->Host = 'smtp.gmail.com';
        $mail_owner->SMTPAuth = true;
        $mail_owner->Username = 'noreply.platby@gmail.com'; // Vaše Gmail adresa
        $mail_owner->Password = 'cimjkhsbhnvnscww'; // Vaše Gmail heslo
        $mail_owner->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
        $mail_owner->Port = 587;

        $mail_owner->CharSet = 'UTF-8';
        $mail_owner->isHTML(true);

        // Nastavení odesílatele
        $mail_owner->setFrom('info@platebniformular.cz', 'Platební formulář');

        // Adresát
        $mail_owner->addAddress($owner_email);

        // Předmět a tělo e-mailu
        $mail_owner->Subject = 'Zaplaceno (' . $customer_data->amount . ' Kč)';
        $mail_owner->Body = "Byla provedena platba. Podrobnosti platby:<br>
            - Částka: {$customer_data->amount} Kč<br>
            - Produkt: {$customer_data->product_name}<br>
            - Jméno: {$customer_data->first_name} {$customer_data->surname}<br>
            - E-mail zákazníka: {$customer_data->email}";

        // Odeslání
        $mail_owner->send();

        // Záznam do logu
        error_log("Notifikační e-mail vlastníkovi webu úspěšně odeslán na $owner_email.");
    } catch (Exception $e) {
        // Záznam chyby do logu
        error_log("Chyba při odesílání e-mailu vlastníkovi webu: {$mail_owner->ErrorInfo}");
    }
}



            exit();

        } catch (Exception $e) {
            error_log("Chyba při odesílání e-mailu: {$mail->ErrorInfo}");
        }
    } else {
        error_log("{$payment_uid} Platba nebyla úspěšná, e-mail nebyl odeslán.");
    }

    // Funkce pro zobrazení stavu platby a tlačítka s odkazem na Pay URL
    function zobrazStavPlatby($stav, $pay_url) {
        switch ($stav) {
            case 'paid':
                echo '<div style="text-align: center; padding-top: 50px;">
                        <div style="font-size: 50px; color: green; font-family: Arial, sans-serif;">
                            &#10004;
                        </div>
                        <div style="font-size: 28px; font-family: Arial, sans-serif; color: green; margin-top: 30px;">
                            Platba byla úspěšně dokončena.
                        </div>
                      </div>';
                break;

            case 'expired':
                echo '<div style="text-align: center; padding-top: 50px;">
                        <div style="font-size: 50px; color: red; font-family: Arial, sans-serif;">
                            &#10060;
                        </div>
                        <div style="font-size: 28px; font-family: Arial, sans-serif; color: red; margin-top: 30px;">
                            Platba vypršela. Prosím, zkuste to znovu.
                        </div>';
                echo '<div style="text-align: center; margin-top: 30px;">
                        <a href="' . esc_url($pay_url) . '" style="background-color: #4CAF50; color: white; padding: 15px 32px; text-align: center; font-size: 18px; text-decoration: none; display: inline-block; border-radius: 12px; font-family: Arial, sans-serif;">
                            Zaplatit znovu
                        </a>
                      </div></div>';
                break;

            case 'waiting_for_payment':
                echo '<div style="text-align: center; padding-top: 50px;">
                        <div style="font-size: 50px; color: orange; font-family: Arial, sans-serif;">
                            &#8987;
                        </div>
                        <div style="font-size: 28px; font-family: Arial, sans-serif; color: orange; margin-top: 30px;">
                            Čekáme na platbu.
                        </div>';
                echo '<div style="text-align: center; margin-top: 30px;">
                        <a href="' . esc_url($pay_url) . '" style="background-color: #4CAF50; color: white; padding: 15px 32px; text-align: center; font-size: 18px; text-decoration: none; display: inline-block; border-radius: 12px; font-family: Arial, sans-serif;">
                            Zaplatit znovu
                        </a>
                      </div></div>';
                break;

            case 'waiting_for_confirmation':
                echo '<div style="text-align: center; padding-top: 50px;">
                        <div style="font-size: 50px; color: blue; font-family: Arial, sans-serif;">
                            &#128338;
                        </div>
                        <div style="font-size: 28px; font-family: Arial, sans-serif; color: blue; margin-top: 30px;">
                            Čekáme na potvrzení platby od banky. Vyčkejte prosím.
                        </div>
                      </div>';
                break;

            case 'refunded':
                echo '<div style="text-align: center; padding-top: 50px;">
                        <div style="font-size: 50px; color: purple; font-family: Arial, sans-serif;">
                            &#8635;
                        </div>
                        <div style="font-size: 28px; font-family: Arial, sans-serif; color: purple; margin-top: 30px;">
                            Platba byla vrácena. Kontaktujte podporu pro více informací.
                        </div>
                      </div>';
                break;

            case 'error':
                echo '<div style="text-align: center; padding-top: 50px;">
                        <div style="font-size: 50px; color: red; font-family: Arial, sans-serif;">
                            &#9888;
                        </div>
                        <div style="font-size: 28px; font-family: Arial, sans-serif; color: red; margin-top: 30px;">
                            Došlo k chybě při zpracování platby. Prosím, zkuste to znovu.
                        </div>';
                echo '<div style="text-align: center; margin-top: 30px;">
                        <a href="' . esc_url($pay_url) . '" style="background-color: #4CAF50; color: white; padding: 15px 32px; text-align: center; font-size: 18px; text-decoration: none; display: inline-block; border-radius: 12px; font-family: Arial, sans-serif;">
                            Zaplatit znovu
                        </a>
                      </div></div>';
                break;

            default:
                echo '<div style="text-align: center; padding-top: 50px;">
                        <div style="font-size: 50px; color: gray; font-family: Arial, sans-serif;">
                            &#10067;
                        </div>
                        <div style="font-size: 28px; font-family: Arial, sans-serif; color: gray; margin-top: 30px;">
                            Neznámý stav platby. Kontaktujte podporu.
                        </div>
                      </div>';
                break;
        }
    }

    $pay_url = $customer_data->pay_url;
    error_log("Pay URL: " . $pay_url);
    zobrazStavPlatby($payment_state, $pay_url);

} catch (Exception $e) {
    echo "Chyba při získávání detailu platby: " . $e->getMessage();
}

function send_meta_purchase_min($customer_data, $event_id) {

    // Tyhle dvě hodnoty si dej do WP options (nebo natvrdo)
    $pixel_id = get_option('meta_pixel_id');       // např. 1234567890
    $token    = get_option('meta_capi_token');     // dlouhý access token

    if (!$pixel_id || !$token) {
        error_log("META CAPI: chybí pixel_id nebo token.");
        return;
    }

    $email = strtolower(trim((string)$customer_data->email));
    if (!$email) {
        error_log("META CAPI: chybí email.");
        return;
    }

    $payload = [
        'data' => [[
            'event_name' => 'Purchase',
            'event_time' => time(),
            'event_id' => (string)$event_id, // 🔥 deduplikace = payment_uid
            'action_source' => 'website',
            'user_data' => [
                'em' => [ hash('sha256', $email) ],
            ],
            'custom_data' => [
                'currency' => 'CZK',
                'value' => (float)$customer_data->amount,
            ],
        ]],
    ];

    $url = "https://graph.facebook.com/v20.0/{$pixel_id}/events?access_token=" . urlencode($token);

    $res = wp_remote_post($url, [
        'headers' => ['Content-Type' => 'application/json'],
        'body'    => wp_json_encode($payload),
        'timeout' => 5,
    ]);

    if (is_wp_error($res)) {
        error_log("META CAPI: chyba - " . $res->get_error_message());
    } else {
        error_log("META CAPI: Purchase odeslán, event_id={$event_id}");
    }
}

?>
