<?php

// Hook para agregar la página de configuración al menú de administración
add_action('admin_menu', 'wp2fa_add_settings_page');
function wp2fa_add_settings_page() {
    add_options_page(
        esc_html__('2FA Settings', 'wp-2fa-authenticator'),
        esc_html__('2FA Settings', 'wp-2fa-authenticator'),
        'manage_options',
        'wp-2fa-authenticator',
        'wp2fa_render_settings_page'
    );
}

// Renderizado de la página completa
function wp2fa_render_settings_page() {
    ?>
    <div class="wrap">
        <h1><?php esc_html_e('Configuración de Autenticación en Dos Pasos - eroQs Technologies', 'wp-2fa-authenticator'); ?></h1>

        <hr>

        <?php if (class_exists('WP2FA_License_Manager')): ?>
            <?php WP2FA_License_Manager::show_license_field(); ?>

            <?php
            $license = get_option('wp2fa_license_key', '');
            $is_premium = class_exists('WP2FA_License_Manager') && WP2FA_License_Manager::is_license_valid();

            if (!empty($license)) {
                if ($is_premium) {
                    echo '<p style="color: green;">' . esc_html__('✅ Licencia válida. Funcionalidades premium activadas.', 'wp-2fa-authenticator') . '</p>';
                } else {
                    echo '<p style="color: red;">' . esc_html__('❌ Licencia inválida o no activada.', 'wp-2fa-authenticator') . '</p>';
                }
            }
            ?>
        <?php endif; ?>
    </div>
    <?php
}

// Guardar método 2FA como user_meta en el perfil
add_action('personal_options_update', 'wp2fa_save_user_method');
add_action('edit_user_profile_update', 'wp2fa_save_user_method');

function wp2fa_save_user_method($user_id) {
    if (current_user_can('edit_user', $user_id) && isset($_POST['wp_2fa_method_user'])) {
        $method = sanitize_text_field($_POST['wp_2fa_method_user']);
        update_user_meta($user_id, 'wp_2fa_method', $method);
    }
}

// Mostrar selección del método 2FA en el perfil del usuario
add_action('show_user_profile', 'wp2fa_show_user_method_field');
add_action('edit_user_profile', 'wp2fa_show_user_method_field');

function wp2fa_show_user_method_field($user) {
    $current = get_user_meta($user->ID, 'wp_2fa_method', true);
    if (empty($current)) {
        $current = get_option('wp2fa_auth_method', 'totp');
    }
    ?>
    <h2><?php esc_html_e('Configuración de Autenticación 2FA', 'wp-2fa-authenticator'); ?></h2>
    <table class="form-table">
        <tr>
            <th><label for="wp_2fa_method_user"><?php esc_html_e('Método de autenticación', 'wp-2fa-authenticator'); ?></label></th>
            <td>
                <select name="wp_2fa_method_user" id="wp_2fa_method_user">
                    <option value="totp" <?php selected($current, 'totp'); ?>><?php esc_html_e('TOTP (App)', 'wp-2fa-authenticator'); ?></option>
                    <?php if (defined('WP2FA_PREMIUM') && WP2FA_PREMIUM === true && WP2FA_License_Manager::is_premium_active()): ?>
                        <option value="email" <?php selected($current, 'email'); ?>><?php esc_html_e('Email', 'wp-2fa-authenticator'); ?></option>
                        <option value="both" <?php selected($current, 'both'); ?>><?php esc_html_e('Ambos', 'wp-2fa-authenticator'); ?></option>
                    <?php endif; ?>
                </select>
                <p class="description"><?php esc_html_e('Este método tiene prioridad sobre la configuración global.', 'wp-2fa-authenticator'); ?></p>
            </td>
        </tr>
    </table>
    <?php
}



// Notificación al actualizar perfil
add_action('admin_notices', 'wp2fa_show_update_notice');
function wp2fa_show_update_notice() {
    global $pagenow;
    if ($pagenow === 'user-edit.php' || $pagenow === 'profile.php') {
        if (isset($_GET['updated']) && $_GET['updated'] === 'true') {
            echo '<div class="notice notice-success is-dismissible">';
            echo '<p><strong>' . esc_html__('WP 2FA Authenticator:', 'wp-2fa-authenticator') . '</strong> ' . esc_html__('Método de autenticación actualizado correctamente.', 'wp-2fa-authenticator') . '</p>';
            echo '</div>';
        }
    }
}
?>
