- Added class-formidable.php to autoload in main plugin file
- Hooked setup_registration_hooks() to init action
- Added missing class-roles.php and class-acf-fields.php to autoload
- Ensures Formidable integration runs after Formidable Forms loads
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Created DDHH_JM_Formidable class with registration form setup
- Programmatic form creation with 5 German-labeled fields
- Email uniqueness validation enforced
- Auto-login after successful registration
- ddhh_provider role assignment on user creation
- Organization name stored as user meta (ddhh_org_name)
- Duplicate submission prevention via email_exists() check
- Password validation (min 8 chars, confirmation match)
- Username generation from email prefix with uniqueness check
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Tasks completed: 2/2
- Create main plugin file with header
- Create main plugin class with activation/deactivation
SUMMARY: .planning/phases/01-foundation-setup/01-01-SUMMARY.md
Tasks completed: 2/2
- Register ddhh_provider role with restricted capabilities
- Register ACF field group for job_offer metadata
SUMMARY: .planning/phases/01-foundation-setup/01-03-SUMMARY.md
- Add DDHH_JM_ACF_Fields class with register_fields() method
- Field group 'Job Details' for post_type job_offer
- 6 fields: job_location (text, required), job_type (select, required),
job_deadline (date_picker), job_contact_email (email, required),
job_logo (image), job_deactivation_reason (textarea, conditional)
- German labels: Standort, Art, Bewerbungsfrist, Kontakt-E-Mail, Logo
- Logo returns ID for media library integration
- Deactivation reason field shows only when status != publish
- Hooked to 'acf/init' action
- Add DDHH_JM_Roles class with add_roles() and remove_roles() methods
- Role 'ddhh_provider' (Anbieter) can edit/delete own job_offers only
- Jobs go to pending status (publish_job_offers: false)
- No access to regular posts/pages (edit_posts/edit_pages: false)
- Can upload files for logos
- Integrated with Activator and Deactivator hooks
- Create main singleton class
- Create activator with version checks
- Create deactivator with rewrite flush
- Update main file to include core classes
This is a blocking fix (Rule 3) - Plan 01-01 was not completed but
these files are required for Plan 01-02 to execute.
- Add main singleton class DDHH_JM_Job_Manager
- Implement activation handler with WP/PHP version checks
- Implement deactivation handler with rewrite flush
- Use transient-based rewrite flush to avoid multiple flushes
- Add comprehensive security checks and documentation
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add WordPress plugin header with metadata
- Define plugin constants (VERSION, PLUGIN_DIR, PLUGIN_URL, PLUGIN_FILE)
- Add security check for direct access
- Include main class file
- Initialize plugin on plugins_loaded hook
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Phase 01: Foundation & Setup
- 3 plans created (all independent, can run parallel)
- 7 total tasks defined
- Ready for execution
Plans:
- 01-01: Plugin structure and activation hooks
- 01-02: Register job_offer CPT with capabilities
- 01-03: Register ddhh_provider role and ACF fields
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Closed job board for digital dabei Hamburg with provider self-registration, admin moderation, and mentor access.
Creates PROJECT.md with requirements and constraints.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>