api_key = get_option('ai_admin_assistant_api_key', ''); } public function plugin_activation() { add_option('ai_admin_assistant_api_key', ''); } public function register_settings() { register_setting('ai_admin_assistant_options', 'ai_admin_assistant_api_key', array( 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', )); } public function add_admin_menu() { add_menu_page( 'AI Assistant', 'AI Assistant', 'manage_options', 'ai-admin-assistant', array($this, 'admin_page'), 'dashicons-admin-generic' ); add_submenu_page( 'ai-admin-assistant', 'Settings', 'Settings', 'manage_options', 'ai-admin-assistant-settings', array($this, 'settings_page') ); } public function enqueue_admin_assets($hook) { if ('toplevel_page_ai-admin-assistant' !== $hook) { return; } // Register and enqueue local copies of external libraries wp_register_script( 'ai-admin-assistant-marked-js', plugins_url('assets/js/marked.min.js', __FILE__), array(), '4.0.2', true ); wp_register_script( 'ai-admin-assistant-highlight-js', plugins_url('assets/js/highlight.min.js', __FILE__), array(), '11.5.1', true ); wp_register_style( 'ai-admin-assistant-highlight-js-style', plugins_url('assets/css/default.min.css', __FILE__), array(), '11.5.1' ); wp_enqueue_style( 'ai-admin-assistant-style', plugin_dir_url(__FILE__) . 'assets/css/admin-style.css', array(), '1.0.0' ); wp_enqueue_script( 'ai-admin-assistant-script', plugin_dir_url(__FILE__) . 'assets/js/admin-script.js', array('jquery', 'ai-admin-assistant-marked-js', 'ai-admin-assistant-highlight-js'), '1.0.0', true ); wp_localize_script( 'ai-admin-assistant-script', 'aiAdminAssistant', array( 'nonce' => wp_create_nonce('ai_admin_assistant_nonce'), 'ajaxurl' => esc_url(admin_url('admin-ajax.php')) ) ); } public function admin_page() { if (!current_user_can('manage_options')) { wp_die(esc_html__('You do not have sufficient permissions to access this page.', 'ai-admin-assistant')); } ?>
' . esc_html__('Settings', 'ai-admin-assistant') . '' ); ?>
' . esc_html__('Settings saved.', 'ai-admin-assistant') . '