load_dependencies(); $this->init_hooks(); } /** * Load required dependencies */ private function load_dependencies() { require_once BLUTEEM_ABA_PLUGIN_DIR . 'includes/class-blog-automator-settings.php'; require_once BLUTEEM_ABA_PLUGIN_DIR . 'includes/class-blog-automator-ai-connectivity.php'; require_once BLUTEEM_ABA_PLUGIN_DIR . 'includes/class-blog-automator-generator.php'; require_once BLUTEEM_ABA_PLUGIN_DIR . 'includes/class-blog-automator-cron.php'; require_once BLUTEEM_ABA_PLUGIN_DIR . 'includes/class-blog-automator-premium.php'; } /** * Initialize WordPress hooks */ private function init_hooks() { // Initialize settings page add_action('admin_menu', array('Bluteem_ABA_Settings', 'add_admin_menu')); add_action('admin_menu', array('Bluteem_ABA_Settings', 'add_logs_menu'), 25); add_action('admin_init', array('Bluteem_ABA_Settings', 'register_settings')); Bluteem_ABA_Settings::init_error_handlers(); Bluteem_ABA_Settings::init_connectivity_handlers(); add_action('admin_enqueue_scripts', array('Bluteem_ABA_Settings', 'enqueue_admin_styles')); add_action('admin_enqueue_scripts', array('Bluteem_ABA_Premium', 'enqueue_premium_styles')); // Initialize cron system Bluteem_ABA_Cron::init(); // Initialize premium features Bluteem_ABA_Premium::add_premium_tab(); // Add settings link to plugins page add_filter('plugin_action_links_' . BLUTEEM_ABA_PLUGIN_BASENAME, array($this, 'add_settings_link')); // Add upgrade link to plugins page add_filter('plugin_action_links_' . BLUTEEM_ABA_PLUGIN_BASENAME, array($this, 'add_upgrade_link')); } /** * Add settings link to plugin actions * * @param array $links Plugin action links * @return array Modified links */ public function add_settings_link($links) { $settings_link = sprintf( '%s', admin_url('admin.php?page=ai-blog-automator'), __('Settings', 'ai-blog-automator') ); array_unshift($links, $settings_link); return $links; } /** * Add upgrade link to plugin actions * * @param array $links Plugin action links * @return array Modified links */ public function add_upgrade_link($links) { if (!Bluteem_ABA_Premium::is_active()) { $upgrade_link = sprintf( '%s', Bluteem_ABA_Premium::get_upgrade_url('plugins_page'), __('Upgrade to Pro', 'ai-blog-automator') ); $links[] = $upgrade_link; } return $links; } } /** * Plugin activation hook */ function bluteem_aba_activate() { // Set default options - keywords must be manually configured by user $defaults = array( 'api_key' => '', 'base_keywords' => '', // User must configure keywords manually 'post_length' => 'medium', 'frequency' => 'daily', 'auto_publish' => 'publish', // Auto-publish for full automation 'prompt_template' => "Write a comprehensive blog post about {keyword}.\n\nLength: {length} words\n\nStructure:\n- Engaging introduction with a hook\n- 3-5 main sections with subheadings\n- Each section should provide valuable, actionable information\n- Conclusion with key takeaways\n\nTone: Informative, conversational, and SEO-friendly\nStyle: Human-like writing with natural flow\nSEO: Include relevant keywords naturally throughout the content\n\nPlease format the output as follows:\nTitle: [Your engaging title here]\n\n[Rest of the content]", 'api_endpoint' => 'https://api.groq.com/openai/v1/chat/completions', 'last_run' => '', 'total_posts' => 0 ); $existing_options = get_option('bluteem_aba_settings'); if (false === $existing_options) { add_option('bluteem_aba_settings', $defaults); } // Initialize post counter (for statistics) if (false === get_option('bluteem_aba_posts_count')) { add_option('bluteem_aba_posts_count', 0); } // Schedule cron event (but don't generate a post immediately) Bluteem_ABA_Cron::schedule_event(); // Log activation if (defined('WP_DEBUG') && WP_DEBUG) { // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log error_log('AI Blog Automator: Plugin activated successfully'); } } register_activation_hook(__FILE__, 'bluteem_aba_activate'); /** * Plugin deactivation hook */ function bluteem_aba_deactivate() { // Clear scheduled cron event Bluteem_ABA_Cron::clear_scheduled_event(); // Log deactivation if (defined('WP_DEBUG') && WP_DEBUG) { // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log error_log('AI Blog Automator: Plugin deactivated successfully'); } } register_deactivation_hook(__FILE__, 'bluteem_aba_deactivate'); /** * Initialize the plugin */ function bluteem_aba_init() { return Bluteem_ABA_Main::get_instance(); } // Start the plugin bluteem_aba_init();