del * widget. Toda la lógica del código de activación (generarlo, mandarlo por correo, * validarlo, registrarlo, autorizar el dominio) vive en el backend. Razón: en la * tienda oficial cada versión del plugin pasa por una espera de seguridad antes de * llegar a los sitios, y el backend lo cambiamos al momento. Ver * DOXI-AI-BACKEND/docs/PLAN_PLUGIN_WORDPRESS.md §10.4. */ if ( ! defined( 'ABSPATH' ) ) { exit; } define( 'DOXI_VERSION', '1.0.0' ); define( 'DOXI_FILE', __FILE__ ); define( 'DOXI_DIR', plugin_dir_path( __FILE__ ) ); define( 'DOXI_URL', plugin_dir_url( __FILE__ ) ); require_once DOXI_DIR . 'includes/class-doxi-settings.php'; require_once DOXI_DIR . 'includes/class-doxi-api.php'; require_once DOXI_DIR . 'includes/class-doxi-frontend.php'; if ( is_admin() ) { require_once DOXI_DIR . 'includes/class-doxi-admin.php'; } /** * Arranque. En `plugins_loaded` y no al incluir el archivo, para que los demás plugins * (los de caché, sobre todo) ya estén cargados cuando nos enganchamos. */ function doxi_boot() { Doxi_Frontend::init(); if ( is_admin() ) { Doxi_Admin::init(); } } add_action( 'plugins_loaded', 'doxi_boot' );