'; $autenticado = ( isset($_COOKIE['token']) && !empty($_COOKIE['token']) ); if ( ! $autenticado ) { $template_path = plugin_dir_path(__FILE__) . 'templates/XXlogin2.html'; echo '
'; } else { $template_path = plugin_dir_path(__FILE__) . 'templates/XX2.html'; echo '
'; } if ( file_exists($template_path) ) { include $template_path; } else { echo '

Error: No se encontró la plantilla en la carpeta templates.

'; } echo '
'; } add_action('admin_menu', 'afroiabo_add_admin_menu'); function afroiabo_add_admin_menu() { add_menu_page( 'Herramientas Afrodita', 'AfroditaBot', 'manage_options', 'afroiabo_kam_assistant_config', 'afroiabo_config_page', 'dashicons-format-chat', 66 ); } add_action('admin_enqueue_scripts', 'afroiabo_admin_inline_script'); function afroiabo_admin_inline_script($hook) { if ($hook !== 'toplevel_page_afroiabo_kam_assistant_config') return; // Registrar y encolar script vacío wp_register_script('afroiabo-inline', '', [], true, true); wp_enqueue_script('afroiabo-inline'); // Obtener datos del usuario actual $current_user = wp_get_current_user(); $admin_email = get_option('admin_email'); // Localizar variables globales JS wp_localize_script('afroiabo-inline', 'appConfig', [ 'ajaxurl' => admin_url('admin-ajax.php'), 'currentUsername' => "admin", 'currentEmail' => $current_user->user_email, 'adminEmail' => $admin_email ]); $site_url = get_bloginfo('url'); // Script en línea que guarda email del admin en localStorage $inline_script = 'localStorage.setItem("adminEmail2", "' . esc_js($admin_email) . '");'; $inline_script .= 'localStorage.setItem("siteUrl", "' . esc_js($site_url) . '");'; // Script en línea que guarda email del admin en localStorage // $inline_script = 'localStorage.setItem("adminEmail2", "' . esc_js($admin_email) . '");'; wp_add_inline_script('afroiabo-inline', $inline_script); } function afroiabo_enqueue_assets() { wp_enqueue_style( 'afroiabo-style', plugin_dir_url(__FILE__) . 'assets/css/chat-widget2.css', [], '2.3' ); wp_enqueue_script( 'afroiabo-script', plugin_dir_url(__FILE__) . 'assets/js/chat-widget2.js', [], '2.3', true ); $config_data = array( 'SYSTEM_ID' => get_bloginfo('admin_email'), 'CONFIG_URL' => 'https://vmi2585475.contaboserver.net/api/get-config2', 'SSE_ENDPOINT'=> 'https://vmi2585475.contaboserver.net/nuevoEndpointKamelot12WP', 'MAX_HISTORY' => 50, 'ajaxurl' => admin_url('admin-ajax.php'), ); wp_localize_script('afroiabo-script', 'afroiaboChatWidgetConfig', $config_data); } add_action('wp_enqueue_scripts', 'afroiabo_enqueue_assets'); add_action('admin_enqueue_scripts', 'afrodiabo_enqueue_tailwind'); function afrodiabo_enqueue_tailwind() { wp_enqueue_style( 'afrodiabo-tailwind', plugins_url('assets/css/Afrotw.css', __FILE__), array(), '4.5' // Versión según tu build ); } add_action('wp_ajax_guardar_usuario_json', 'guardar_usuario_json'); function guardar_usuario_json() { $nuevo = [ 'username' => sanitize_text_field($_POST['username']), 'email' => sanitize_email($_POST['email']), 'primary_color' => sanitize_text_field($_POST['primary_color']), 'button_text' => sanitize_text_field($_POST['button_text']), 'button_size' => sanitize_text_field($_POST['button_size']), 'button_variant' => sanitize_text_field($_POST['button_variant']), 'button_border_radius' => sanitize_text_field($_POST['button_border_radius']), 'button_shadow' => isset($_POST['button_shadow']) && ($_POST['button_shadow'] === '1' || $_POST['button_shadow'] === 'true'), 'button_disabled' => isset($_POST['button_disabled']) && ($_POST['button_disabled'] === '1' || $_POST['button_disabled'] === 'true'), ]; $ruta = plugin_dir_path(__FILE__) . 'assets/usuarios.json'; // DEPURACIÓN: muestra la ruta real y si existe el archivo if (!file_exists($ruta)) { echo json_encode([ 'success' => false, 'message' => 'No se encontró el archivo JSON', 'debug' => ['ruta' => $ruta] ]); wp_die(); } $usuarios = json_decode(file_get_contents($ruta), true); if (!is_array($usuarios)) { echo json_encode([ 'success' => false, 'message' => 'El archivo JSON es inválido o está corrupto', 'debug' => ['contenido' => file_get_contents($ruta)] ]); wp_die(); } $actualizado = false; foreach ($usuarios as $i => $usuario) { if ( (isset($usuario['username']) && $usuario['username'] === $nuevo['username']) || (isset($usuario['email']) && $usuario['email'] === $nuevo['email']) ) { $usuarios[$i] = $nuevo; $actualizado = true; break; } } if (!$actualizado) { $usuarios[] = $nuevo; } $guardado = file_put_contents($ruta, json_encode($usuarios, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); echo json_encode([ 'success' => $guardado !== false, 'message' => $actualizado ? '✅ Usuario actualizado correctamente' : '✅ Nuevo usuario añadido correctamente', 'debug' => [ 'ruta' => $ruta, 'guardado' => $guardado, 'usuarios' => $usuarios ] ]); wp_die(); } add_action('wp_ajax_obtener_config_usuario', 'obtener_config_usuario'); add_action('wp_ajax_nopriv_obtener_config_usuario', 'obtener_config_usuario'); function obtener_config_usuario() { $ruta = plugin_dir_path(__FILE__) . 'assets/usuarios.json'; $user = wp_get_current_user(); $username = get_bloginfo('admin_email'); $email = get_bloginfo('admin_email'); $config = null; $usuarios = []; if (file_exists($ruta)) { $contenido = file_get_contents($ruta); $usuarios = json_decode($contenido, true); foreach ($usuarios as $usuario) { if ( (isset($usuario['email']) && $usuario['email'] === $email) ) { $config = $usuario; break; } } } wp_send_json([ 'success' => $config !== null, 'config' => $config, 'debug' => [ 'username_solicitado' => $username, 'email_solicitado' => $email, 'usuarios_disponibles' => $usuarios ] ]); } add_filter('upload_mimes', 'afrodita_permitir_json'); function afrodita_permitir_json($mimes) { $mimes['json'] = 'application/json'; return $mimes; } function afroiabo_get_plugins_status() { if ( ! function_exists( 'get_plugins' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } $all_plugins = get_plugins(); // Todos los instalados $active = get_option( 'active_plugins', [] ); // Activos (IDs) $detalle = []; foreach ( $all_plugins as $plugin_file => $info ) { $detalle[ $plugin_file ] = [ 'Name' => $info['Name'], 'Active' => in_array( $plugin_file, $active, true ), ]; } return $detalle; } add_action( 'admin_enqueue_scripts', 'afroiabo_plugins_to_js' ); function afroiabo_plugins_to_js( $hook ) { if ( $hook !== 'toplevel_page_afroiabo_kam_assistant_config' ) { return; } // 1) registramos el “handle” vacío, igual que ya haces wp_register_script( 'afroiabo-plugins', '', [], false, true ); wp_enqueue_script( 'afroiabo-plugins' ); // 2) pasamos la info wp_localize_script( 'afroiabo-plugins', 'afroditaPlugins', afroiabo_get_plugins_status() ); } function afroiabo_add_widget_html() { echo '

AfroditaBot

'; } add_action('wp_footer', 'afroiabo_add_widget_html');