add_action('rest_api_init', function () {
    register_rest_route('divertiamo/v1', '/registrazione', [
        'methods'             => 'POST',
        'callback'            => 'divertiamo_registra_socio',
        'permission_callback' => '__return_true',
    ]);
});

function divertiamo_registra_socio($request) {
    global $wpdb;

    $form_id = 808;
    $data = $request->get_json_params();
    $required_fields = ['text-1', 'text-2', 'select-1', 'date-1', 'email-1', 'phone-1', 'text-4', 'text-5', 'radio-3', 'select-5', 'select-4'];

    foreach ($required_fields as $field) {
        if (empty($data[$field])) {
            return new WP_REST_Response(['error' => "Campo obbligatorio mancante: $field"], 400);
        }
    }

    // Inserisci in wp_frmt_form_entry
    $wpdb->insert("{$wpdb->prefix}frmt_form_entry", [
        'form_id'      => $form_id,
        'entry_type'   => 'custom',
        'is_spam'      => 0,
        'date_created' => current_time('mysql'),
    ]);
    $entry_id = $wpdb->insert_id;

    // Inserisci i meta
    foreach ($data as $key => $value) {
        $wpdb->insert("{$wpdb->prefix}frmt_form_entry_meta", [
            'entry_id'     => $entry_id,
            'meta_key'     => sanitize_text_field($key),
            'meta_value'   => is_array($value) ? implode(',', $value) : sanitize_text_field($value),
            'date_created' => current_time('mysql'),
            'date_updated' => current_time('mysql'),
        ]);
    }

    // Dati per l'e-mail
    $email_1       = $data['email-1'];
    $email_2       = isset($data['email-2']) ? $data['email-2'] : '';
    $admin_email   = 'info@divertiamo.ch';

    $nome          = $data['text-1'];
    $cognome       = $data['text-2'];
    $genere        = $data['select-1'];
    $dob           = $data['date-1'];
    $telefono      = $data['phone-1'];
    $indirizzo     = isset($data['text-3']) ? $data['text-3'] : '';
    $cap           = $data['text-4'];
    $localita      = $data['text-5'];
    $tassa         = $data['radio-3'];
    $comunicazioni = $data['select-5'];
    $consenso      = $data['select-4'];
    
    // Dati del genitore/tutore (se non presenti, "N/D")
    $nome_tutore      = isset($data['text-7']) && !empty($data['text-7']) ? $data['text-7'] : "N/D";
    $ruolo_tutore     = isset($data['select-7']) && !empty($data['select-7']) ? $data['select-7'] : "N/D";
    $indirizzo_tutore = isset($data['text-8']) && !empty($data['text-8']) ? $data['text-8'] : "N/D";
    $cap_tutore       = isset($data['text-9']) && !empty($data['text-9']) ? $data['text-9'] : "N/D";
    $localita_tutore  = isset($data['text-10']) && !empty($data['text-10']) ? $data['text-10'] : "N/D";
    $email_tutore     = isset($data['email-2']) && !empty($data['email-2']) ? $data['email-2'] : "N/D";
    $telefono_tutore  = isset($data['phone-2']) && !empty($data['phone-2']) ? $data['phone-2'] : "N/D";

    // Nuovo messaggio e-mail in formato HTML
    $msg = "<html><body>"
         . "<p>Buongiorno $nome,<br>Innanzitutto la ringraziamo per il suo interessamento nei confronti della nostra associazione.<br>Di seguito i suoi dati anagrafici e le coordinate bancarie per il pagamento della tassa sociale.</p>"
         . "<p>Restiamo a disposizione per qualsiasi richiesta d’informazione e la ringraziamo anticipatamente della sua preziosa collaborazione.<br>Cordialmente.<br><strong>Il segretariato di DiverTiamo</strong></p>"
         . "<hr>"
         . "<p><strong><u>Dati forniti:</u></strong></p>"
         . "<p>Nome: $nome<br>"
         . "Cognome: $cognome<br>"
         . "Data di nascita: $dob<br>"
         . "Genere: $genere<br>"
         . "E-mail: $email_1<br>"
         . "Telefono: $telefono<br>"
         . "Indirizzo: $indirizzo<br>"
         . "Località: $cap $localita<br>"
         . "Tassa: $tassa<br>"
         . "Desidero ricevere comunicazioni: $comunicazioni<br>"
         . "Consenso al trattamento dei dati: $consenso</p>"
         . "<p>Se l'iscritto è minorenne o sotto tutela, il formulario deve essere approvato da un genitore o tutore legale.</p>"
         . "<p>Nome e cognome del genitore/tutore legale: $nome_tutore<br>"
         . "Ruolo: $ruolo_tutore<br>"
         . "Indirizzo del genitore/tutore legale: $indirizzo_tutore<br>"
         . "Località del genitore/tutore legale: $cap_tutore $localita_tutore<br>"
         . "E-mail del genitore/tutore legale: $email_tutore<br>"
         . "Telefono del genitore/tutore legale: $telefono_tutore</p>"
         . "<hr>"
         . "<p><strong><u>Coordinate bancarie per il pagamento della tassa di societariato:</u></strong></p>"
         . "<p><img src=\"https://divertiamo.ch/wp-content/uploads/2024/12/QR_IBAN.jpg\" alt=\"QR per il pagamento\" style=\"max-width:100%; height:auto;\"></p>"
         . "<p>IBAN: CH93 8080 8001 6609 6270 1<br>"
         . "DiverTiAmo (c/o Stocchetti Paolo Luca)<br>"
         . "Via Gaggiolo 48A – 6855 Stabio</p>"
         . "<hr>"
         . "<p>Questa e-mail è una e-mail automatica a seguito dell'invio del modulo “Tassa di societariato” sul nostro sito web (" . site_url() . ") in cui è stato utilizzato il suo indirizzo e-mail. Se non siete stati voi, ignorate questo messaggio.</p>"
         . "</body></html>";

    // Prepara gli header per inviare e-mail in formato HTML
    $headers = array('Content-Type: text/html; charset=UTF-8');

    // Invia e-mail al socio e all'admin
    wp_mail([$email_1, $email_2], "DiverTiAmo - La tua iscrizione!", $msg, $headers);
    wp_mail($admin_email, "DiverTiAmo - Nuovo socio!", $msg, $headers);

    return new WP_REST_Response(['success' => true, 'entry_id' => $entry_id], 200);
}