api = new Agentia_API(); $this->admin = new Agentia_Admin($this->api); $this->widget = new Agentia_Widget($this->api); add_action('admin_menu', [$this->admin, 'add_menu']); add_action('admin_enqueue_scripts', [$this->admin, 'enqueue_assets']); add_action('wp_enqueue_scripts', [$this->widget, 'enqueue_assets']); add_action('wp_footer', [$this->widget, 'render_widget']); add_action('wp_ajax_agentia_login', [$this->admin, 'ajax_login']); add_action('wp_ajax_nopriv_agentia_chat_send', [$this->widget, 'ajax_send_message']); add_action('wp_ajax_agentia_chat_send', [$this->widget, 'ajax_send_message']); add_action('wp_ajax_agentia_get_widget_config', [$this->widget, 'ajax_get_config']); add_action('wp_ajax_nopriv_agentia_get_widget_config', [$this->widget, 'ajax_get_config']); add_action('wp_ajax_agentia_disconnect', [$this, 'ajax_disconnect']); add_action('wp_ajax_agentia_sso_redirect', [$this->admin, 'ajax_sso_redirect']); add_action('wp_ajax_agentia_get_stats', [$this->admin, 'ajax_get_stats']); add_action('wp_ajax_agentia_get_flows', [$this->admin, 'ajax_get_flows']); add_action('wp_ajax_agentia_select_flow', [$this->admin, 'ajax_select_flow']); } /** * AJAX: Desconectar */ public function ajax_disconnect() { check_ajax_referer('agentia_nonce', 'nonce'); update_option('agentia_api_key', ''); update_option('agentia_api_secret', ''); update_option('agentia_account_id', ''); update_option('agentia_account_status', 'disconnected'); wp_send_json_success(['message' => 'Desconectado']); } } // Activacion register_activation_hook(__FILE__, function() { add_option('agentia_api_url', 'https://n8ntest.soyagentia.com/app'); add_option('agentia_api_key', ''); add_option('agentia_api_secret', ''); add_option('agentia_account_id', ''); add_option('agentia_account_status', 'disconnected'); }); // Desactivacion register_deactivation_hook(__FILE__, function() { // No borrar opciones para que si reactiva no pierda config }); // Init - cargar despues de que WP este listo add_action('plugins_loaded', function() { if (!defined('AGENTIA_API_URL')) { define('AGENTIA_API_URL', get_option('agentia_api_url', 'https://n8ntest.soyagentia.com/app')); } if (!defined('AGENTIA_N8N_WEBHOOK_URL')) { define('AGENTIA_N8N_WEBHOOK_URL', 'https://n8ntest.soyagentia.com/webhook/wordpress-chat'); } require_once AGENTIA_PLUGIN_DIR . 'includes/class-agentia-api.php'; require_once AGENTIA_PLUGIN_DIR . 'includes/class-agentia-admin.php'; require_once AGENTIA_PLUGIN_DIR . 'includes/class-agentia-widget.php'; AgentiaChat::instance(); });