id, 'agentgarrison' ) ) { return; } $this->render_wizard(); } // ------------------------------------------------------------------------- // Wizard HTML // ------------------------------------------------------------------------- private function render_wizard() { ?>
__( 'Bot Policy', 'agentgarrison' ), 2 => __( 'Site Context', 'agentgarrison' ), 3 => __( 'Generate llms.txt', 'agentgarrison' ), 4 => __( 'Done!', 'agentgarrison' ), ); echo esc_html( $rayetun_ag_wlabels[ $rayetun_ag_wi ] ); ?>
🤖

📝

📄

⏳

🎉

  • 🤖
  • 📄
  • 🔗
  • 📊
__( 'Forbidden', 'agentgarrison' ) ), 403 ); } $step = absint( $_POST['step'] ?? 0 ); switch ( $step ) { case 1: // Apply bot policy. $policy = sanitize_key( wp_unslash( $_POST['policy'] ?? 'recommended' ) ); $this->apply_bot_policy( $policy ); break; case 2: // Save site context. $context = sanitize_textarea_field( wp_unslash( $_POST['context'] ?? '' ) ); $settings = get_option( 'rayetun_ag_llms_settings', array() ); $settings['site_context'] = $context; update_option( 'rayetun_ag_llms_settings', $settings ); break; case 3: // Generate llms.txt (and write the physical file for host compatibility). if ( Rayetun_AG_Modules::is_enabled( 'llms_txt' ) ) { $llms = Rayetun_AG_Llms_Txt::get_instance(); $llms->generate(); $llms->write_static_files(); } break; case 4: // Complete. update_option( 'rayetun_ag_onboarding_complete', true ); break; } // Each wizard step changes a pillar's state — refresh the dashboard score. Rayetun_AG_Visibility_Score::invalidate(); wp_send_json_success(); } public function handle_skip() { check_ajax_referer( 'rayetun_ag_ajax', 'nonce' ); if ( ! current_user_can( 'manage_options' ) ) { wp_send_json_error( array( 'message' => __( 'Forbidden', 'agentgarrison' ) ), 403 ); } update_option( 'rayetun_ag_onboarding_complete', true ); wp_send_json_success(); } private function apply_bot_policy( $policy ) { $presets = array( 'recommended' => array( 'ai_trainer' => 'block', 'ai_assistant' => 'allow', 'ai_search' => 'allow', 'seo_crawler' => 'allow', 'general_scraper' => 'block', ), 'open' => array( 'ai_trainer' => 'allow', 'ai_assistant' => 'allow', 'ai_search' => 'allow', 'seo_crawler' => 'allow', 'general_scraper' => 'allow', ), 'strict' => array( 'ai_trainer' => 'block', 'ai_assistant' => 'block', 'ai_search' => 'block', 'seo_crawler' => 'block', 'general_scraper' => 'block', ), ); if ( ! isset( $presets[ $policy ] ) ) { $policy = 'recommended'; } $settings = get_option( 'rayetun_ag_bot_settings', array() ); $settings['categories'] = $presets[ $policy ]; update_option( 'rayetun_ag_bot_settings', $settings ); } }