AI Authors Studio (AAS): Another installed copy is already active. Deactivate and delete the older AAS plugin folder before activating this build.

'; }); } return; } if(!defined('AIAAS_VERSION')){ define('AIAAS_VERSION','2.18.89'); } require_once __DIR__ . '/core/class-request.php'; require_once __DIR__ . '/core/variant.php'; /** * Build variant: * FREE - repository build */ if ( ! defined( 'AIAAS_BUILD_VARIANT' ) ) { define( 'AIAAS_BUILD_VARIANT', 'FREE' ); } // WP 6.9+ fix: ensure heartbeat is registered when wp-auth-check is enqueued. add_action( 'wp_default_scripts', array( '\\AIAAS\\Plugin', 'register_heartbeat_dependency' ), -999 ); add_action( 'admin_enqueue_scripts', array( '\\AIAAS\\Plugin', 'ensure_heartbeat' ), -999 ); add_action( 'wp_enqueue_scripts', array( '\\AIAAS\\Plugin', 'ensure_heartbeat' ), -999 ); add_action( 'admin_init', array( '\\AIAAS\\Plugin', 'ensure_heartbeat' ), 0 ); add_action( 'login_init', array( '\\AIAAS\\Plugin', 'ensure_heartbeat' ), 0 ); // Some stacks enqueue wp-auth-check very early; register heartbeat on init too. add_action( 'init', static function () { if ( function_exists( 'wp_script_is' ) && function_exists( 'wp_register_script' ) ) { if ( ! wp_script_is( 'heartbeat', 'registered' ) ) { wp_register_script( 'heartbeat', includes_url( 'js/heartbeat.min.js' ), array( 'jquery' ), ( defined('WP_VERSION') ? WP_VERSION : false ), true ); } } }, 0 ); if ( ! defined( 'AIAAS_MAIN_FILE' ) ) { define( 'AIAAS_MAIN_FILE', __FILE__ ); } // Central version source-of-truth: always use the installed plugin header version. require_once __DIR__ . '/core/class-version.php'; require_once __DIR__ . '/core/bootstrap.php'; require_once __DIR__ . '/core/storage-v2.php'; // ----------------------------------------------------------------------------- // Constants // ----------------------------------------------------------------------------- if (!defined('AIAAS_PLUGIN_VERSION')) { define('AIAAS_PLUGIN_VERSION', defined('AIAAS_VERSION') ? AIAAS_VERSION : '2.18.89'); } // ----------------------------------------------------------------------------- // Build/Version visibility (helps verify which ZIP is installed) // ----------------------------------------------------------------------------- // Translations are auto-loaded by WordPress.org language packs for this plugin slug. if (!defined('AIAAS_PATH')) { define('AIAAS_PATH', plugin_dir_path(__FILE__)); } if (!defined('AIAAS_URL')) { define('AIAAS_URL', plugin_dir_url(__FILE__)); } // Ticket 1+2 (and onward): centralized UI terminology + shared components require_once __DIR__ . '/includes/terminology.php'; require_once __DIR__ . '/includes/portal-nav.php'; require_once __DIR__ . '/includes/component-library.php'; require_once __DIR__ . '/includes/ui-components.php'; // Import Engine (multi-strategy import framework) require_once AIAAS_PATH . 'core/import-engine/class-import-result.php'; require_once AIAAS_PATH . 'core/import-engine/interface-import-strategy.php'; require_once AIAAS_PATH . 'core/import-engine/class-import-engine.php'; // Built-in strategies require_once AIAAS_PATH . 'core/import-engine/strategies/docx/class-docx-legacy-strategy.php'; require_once AIAAS_PATH . 'core/class-plugin.php'; require_once AIAAS_PATH . 'core/admin-post-handlers.php'; // ----------------------------------------------------------------------------- // Activation (Foundation v0.9.0) // ----------------------------------------------------------------------------- register_activation_hook(__FILE__, function() { if (class_exists('AIAAS\\Plugin') && method_exists('AIAAS\\Plugin','activate')) { \AIAAS\Plugin::activate(); } }); // ----------------------------------------------------------------------------- // Bootstrap // ----------------------------------------------------------------------------- // Some environments/themes can be finicky about when hooks are registered. // Register AIAAS hooks immediately, and also from plugins_loaded as a fallback. add_action( 'plugins_loaded', 'aiaas_boot_plugin', 1 ); // Plugin listing quick links (Plugins screen) add_filter( 'plugin_action_links_' . plugin_basename( AIAAS_MAIN_FILE ), 'aiaas_plugin_action_links' ); // Enqueue shared styles for the portal navigation (Ticket 3 hotfix) add_action('wp_enqueue_scripts', function () { $css = plugins_url('assets/css/aiaas-nav.css', __FILE__); wp_enqueue_style('aiaas-nav', $css, [], AIAAS_VERSION); }); // Enqueue Publish wizard assets (Ticket 5) add_action('wp_enqueue_scripts', function () { $css = plugins_url('assets/css/aiaas-publish-wizard.css', __FILE__); $js = plugins_url('assets/js/aiaas-publish-wizard.js', __FILE__); wp_enqueue_style('aiaas-publish-wizard', $css, [], AIAAS_VERSION); wp_enqueue_script('aiaas-publish-wizard', $js, [], AIAAS_VERSION, true); }); // Ensure TinyMCE text/background color controls work in frontend wp_editor instances. add_filter('tiny_mce_before_init', function($init) { $plugins = isset($init['plugins']) ? $init['plugins'] : ''; if (is_string($plugins) && strpos($plugins, 'textcolor') === false) { $init['plugins'] = $plugins . (strlen($plugins) ? ',' : '') . 'textcolor'; } return $init; }, 20); // Modular foundation: load only the bundled FREE module in the WordPress.org build. require_once __DIR__ . '/modules/loader.php'; require_once __DIR__ . '/core/init.php'; require_once __DIR__ . '/core/class-container.php'; require_once __DIR__ . '/core/hooks.php'; // Modular architecture: wiring layers (foundation) require_once __DIR__ . '/core/ajax.php'; require_once __DIR__ . '/core/admin.php'; require_once __DIR__ . '/core/security.php'; require_once __DIR__ . '/core/assets.php'; require_once __DIR__ . '/core/loader.php'; // Load core layers in defined order (no UI changes) if ( function_exists( 'aiaas_core_loader' ) ) { aiaas_core_loader(); }