wp_create_nonce( 'aica_onboarding' ), 'indexerNonce' => wp_create_nonce( 'aica_indexer' ), 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'adminUrl' => admin_url( 'admin.php?page=aica-smart-ai-commerce-assistant' ), 'redirectUrl' => admin_url( 'admin.php?page=aica-smart-ai-commerce-assistant' ), 'i18n' => array( 'enterApiKey' => __( 'Please enter your API key', 'aica-smart-ai-commerce-assistant' ), 'indexing' => __( 'Indexing...', 'aica-smart-ai-commerce-assistant' ), 'completeSetup' => __( 'Complete Setup →', 'aica-smart-ai-commerce-assistant' ), 'getApiKey' => __( 'Need an API Key?', 'aica-smart-ai-commerce-assistant' ), 'createKey' => __( 'Create a new API key', 'aica-smart-ai-commerce-assistant' ), 'copyPaste' => __( 'Copy and paste it below', 'aica-smart-ai-commerce-assistant' ), 'goToKeys' => __( 'Go to "API Keys"', 'aica-smart-ai-commerce-assistant' ), 'signUp' => __( 'Sign up or Log in', 'aica-smart-ai-commerce-assistant' ), /* translators: %s: Link to Google AI Studio */ 'visitGoogle' => sprintf( __( 'Visit %s', 'aica-smart-ai-commerce-assistant' ), 'Google AI Studio' ), /* translators: %s: Link to OpenAI Platform */ 'visitOpenAI' => sprintf( __( 'Visit %s', 'aica-smart-ai-commerce-assistant' ), 'OpenAI Platform' ), /* translators: %s: Link to Anthropic Console */ 'visitAnthropic' => sprintf( __( 'Visit %s', 'aica-smart-ai-commerce-assistant' ), 'Anthropic Console' ), /* translators: %s: Link to OpenRouter */ 'visitOpenRouter' => sprintf( __( 'Visit %s', 'aica-smart-ai-commerce-assistant' ), 'OpenRouter' ), ), ) ); } /** * Check if onboarding is needed * * @return void */ public function check_onboarding() { // Redirect to onboarding on activation if ( get_transient( 'aica_activation_redirect' ) ) { delete_transient( 'aica_activation_redirect' ); if ( !get_option( 'aica_onboarding_completed' ) ) { wp_safe_redirect( admin_url( 'admin.php?page=aica-smart-ai-commerce-assistant-onboarding' ) ); exit; } } } /** * Add onboarding page to admin menu * * @return void */ public function add_onboarding_page() { if ( get_option( 'aica_onboarding_completed' ) ) { return; } add_submenu_page( null, // Hidden from menu __( 'Setup Wizard', 'aica-smart-ai-commerce-assistant' ), __( 'Setup Wizard', 'aica-smart-ai-commerce-assistant' ), 'manage_options', 'aica-smart-ai-commerce-assistant-onboarding', array( $this, 'render_onboarding_page' ) ); } /** * Render onboarding wizard * * @return void */ public function render_onboarding_page() { ?>
'yes' ) ) ); wp_send_json_success(); } /** * AJAX: Skip onboarding * * @return void */ public function ajax_skip_onboarding() { check_ajax_referer( 'aica_onboarding', 'nonce' ); if ( !current_user_can( 'manage_options' ) ) { wp_send_json_error( 'Permission denied' ); } update_option( 'aica_onboarding_completed', true ); wp_send_json_success(); } /** * AJAX: Save onboarding settings * * @return void */ public function ajax_save_onboarding_settings() { check_ajax_referer( 'aica_onboarding', 'nonce' ); if ( !current_user_can( 'manage_options' ) ) { wp_send_json_error( 'Permission denied' ); } $provider = sanitize_text_field( $_POST['provider'] ?? 'openai' ); $api_key = sanitize_text_field( $_POST['api_key'] ?? '' ); if ( empty( $api_key ) ) { wp_send_json_error( 'API key is required' ); } // Get current settings $settings = get_option( 'aica_settings', array() ); // Update with onboarding data $settings['ai_provider'] = $provider; $settings['enable_widget'] = 'yes'; // Set API key based on provider $key_map = array( 'openai' => 'openai_api_key', 'anthropic' => 'anthropic_api_key', 'google' => 'google_api_key', 'openrouter' => 'openrouter_api_key', ); if ( isset( $key_map[ $provider ] ) ) { $settings[ $key_map[ $provider ] ] = $api_key; } // Set default models $model_map = array( 'openai' => 'gpt-4o-mini', 'anthropic' => 'claude-3-5-sonnet-20241022', 'google' => 'gemini-2.5-flash', 'openrouter' => 'anthropic/claude-3.5-sonnet', ); if ( isset( $model_map[ $provider ] ) ) { $model_key = $provider . '_model'; $settings[ $model_key ] = $model_map[ $provider ]; } update_option( 'aica_settings', $settings ); wp_send_json_success( array( 'message' => 'Settings saved successfully', ) ); } } // Initialize // AICA_Onboarding::get_instance(); // Removed, handled by main plugin class