# Copilot Instructions for Workshop-Wahlen (Production) ## Project Overview This WordPress plugin manages workshop elections for Konfi-Castle events. It provides an admin backend (elections, workshops, participants, teamers, assignments) and a participant frontend. ## Architecture & Components - **Main file:** `konficastle-workshopwahl.php` – Initializes hooks, loads assets, admin menus. - **Backend:** - `includes/` with modules for elections, workshops, participants, teamers, assignments, data management, force assignment - Core assignment logic: `includes/zuteilungslogik.php` - **Frontend:** - Shortcodes: `[konficastle_workshopwahl wahl=ID]`, `[konficastle_workshop_ergebnis wahl=ID]` - **Database:** Tables are created via `install.php`, prefix: `kc_` ## Key Patterns & Workflows - **Admin tabs:** Navigation via `kc_admin_tabs()` - **Naming:** Functions and tables use `kc_` prefix - **Force assignments:** Manual assignments take precedence - **Test data:** Only user ID 1 can generate via admin (`admin-data.php`) - **CSV export:** Possible via admin assignments - **Teamer password:** Managed via admin, hash in WP options ## Examples & Entry Points - **Admin menu:** `konficastle-workshopwahl.php`, `includes/admin-wahlen.php` - **Assignment logic:** `includes/zuteilungslogik.php` - **Frontend form:** `includes/frontend-form.php` ## Notes for AI Agents - Always use `$wpdb->prefix` for DB tables - Backend logic is modular, each entity has its own file - No complex JS logic in frontend, validation is server-side - For changes to assignment logic: use test scenarios via test data admin page --- See README.md for further details.