Entity Registration
A flexible module for tracking user registrations for events, courses, or any entity-based sign-ups, with workflow support, capacity management, and Commerce integration capability.
registration
Install
composer require 'drupal/registration:^3.4'
Overview
Entity Registration is a comprehensive Drupal module that enables user registration management for events or any content type where sign-ups are needed. The module provides complete workflow support through Drupal's Workflows module, allowing custom states like Pending, Complete, Held, and Canceled with configurable transitions.
Key capabilities include capacity limits per event, automatic open/close dates, multiple registration support, anonymous and authenticated user registrations, and automated reminder emails. The module integrates with Drupal Commerce through the separate Commerce Registration module to enable paid registrations and ticket sales.
Registration is enabled on any fieldable entity by adding a Registration field, which makes it highly flexible for use with nodes, commerce products, or custom entities. The module provides extensive Views integration for administrative listings and includes comprehensive multilingual support where registration settings can be synchronized across language variants.
Features
- Add registration capability to any fieldable entity (nodes, commerce products, etc.) via the Registration field type
- Workflow-based registration states (Pending, Complete, Held, Canceled) with configurable transitions
- Capacity management with configurable limits per event and per-registration space reservations
- Automatic registration open/close based on configurable dates
- Held registration expiration system with automatic state transitions via cron
- Automated reminder emails sent at scheduled dates with token support
- Broadcast email system to send messages to all registrants
- Support for self-registration, registering other users, and anonymous registrations
- Multiple registrations per person option for each event
- Registration status block showing availability and remaining spaces
- Comprehensive Views integration with host entity filters and fields
- Full multilingual support with settings synchronization across languages
- Migration support from Drupal 7 Registration module
- Drush sql:sanitize integration for database anonymization
- Token support for registration, settings, and host entity data
- Extensible validation system with custom constraints
Use Cases
Event Registration System
Create an event content type with a Registration field to allow users to sign up for events. Configure capacity limits, open/close dates, and send reminder emails before the event. Use the Manage Registrations tab to view attendees, send broadcast emails, and export the registration list.
Course Enrollment
Add registration to course or class content types to manage student enrollment. Use the spaces feature to allow group registrations (e.g., family members). Enable wait lists to automatically queue overflow registrations when courses reach capacity.
Paid Ticket Sales
Combine with Commerce Registration module to sell tickets. Create Commerce products with registration fields, and registrations are created when orders are completed. Use held states to reserve spots during checkout and automatically release them if payment fails.
Conference Session Signup
For multi-session conferences, add registration fields to session content types. Configure per-session capacity limits and use the Registration Scheduled Action submodule to send reminders before each session. Use workflow states to track confirmed vs. tentative attendees.
Volunteer Coordination
Create volunteer opportunity content with registration fields. Allow multiple registrations per user for different volunteer slots. Use the broadcast email feature to communicate with all volunteers and send reminder emails before shifts.
Multilingual Event System
For multilingual sites, registrations capture the language used during signup. Use the settings synchronization feature to keep capacity and dates consistent across translations while allowing language-specific reminder templates.
Tips
- Use the Registration status block to display dynamic availability messages on host entity pages with customizable text for each state
- Configure field display settings on the Registration field to show either an inline registration form or a link to the registration page
- Enable the Registration Confirmation submodule to automatically send confirmation emails when registrations complete
- Use the Registration Scheduled Action submodule to set up automated emails triggered by open/close dates
- For complex registration workflows, create custom workflow entities and configure state transitions to match your business processes
- Token support is available throughout the module - use [registration:*], [registration_settings:*], and host entity tokens in all email templates
- The module includes migration support from Drupal 7 Registration module - use drush migrate commands to migrate existing data
- Use Views bulk operations with the provided actions to manage registrations in bulk (send emails, change states)
Technical Details
Admin Pages 9
/admin/structure/registration-settings
Configure global registration module settings including email handling, existing registration policies, multilingual synchronization, and filter thresholds.
/admin/structure/registration-types
Manage registration type bundles, which define workflows and default states for registrations. Configure fields, form display, and view display for each type.
/admin/structure/registration-types/{registration_type}/edit
Configure registration type settings including workflow, default state, and held registration expiration.
/admin/people/registrations
Administrative listing of all registrations in the system with filtering and bulk operations.
/user/{user}/registrations
View all registrations associated with a specific user account.
/{entity_type}/{entity}/registrations
View and manage all registrations for a specific host entity (node, product, etc.).
/{entity_type}/{entity}/registrations/settings
Configure registration settings for a specific host entity including enable/disable, capacity, dates, and notifications.
/{entity_type}/{entity}/registrations/broadcast
Send broadcast email to all registrants of a specific host entity.
/{entity_type}/{entity}/register
Registration form for users to sign up for an event or entity.
Permissions 9
Hooks 1
hook_registration_host__access
Control host entity operation access for registration-specific operations
Drush Commands 1
drush sql:sanitize
The module extends Drush's sql:sanitize command to anonymize registration data including emails and text fields
Troubleshooting 5
Ensure the Registration field is added to the content type and the field formatter is set to 'Registration form' in the display settings. Also verify registration is enabled in the entity's registration settings.
Check that users have the appropriate permissions (create [type] registration, register self). Verify the registration open date has passed and close date hasn't been reached. Check capacity hasn't been exceeded.
Ensure 'Send reminder' is checked in registration settings and a reminder date is set. Verify cron is running properly. Check that registrants have valid email addresses and are in active states.
Held registration expiration requires cron to run. Check the registration type's hold expiration hours setting. Ensure the expiration state is configured correctly.
Install the Entity API contributed module to enable the reverse relationship from User entities to their registrations due to core limitation.
Security Notes 4
- Permission 'administer registration types' and 'administer registration' are restricted permissions - grant only to trusted administrators
- The module validates all registration operations through access control handlers and validation constraints
- Email addresses collected through registration are stored in the database - ensure proper data protection measures are in place
- The Drush sql:sanitize integration helps anonymize registration data for staging environments