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
3,208 sites
68
drupal.org

Install

Drupal 11, 10 v3.4.4
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
Registration settings /admin/structure/registration-settings

Configure global registration module settings including email handling, existing registration policies, multilingual synchronization, and filter thresholds.

Registration types /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.

Edit registration type /admin/structure/registration-types/{registration_type}/edit

Configure registration type settings including workflow, default state, and held registration expiration.

Registrations /admin/people/registrations

Administrative listing of all registrations in the system with filtering and bulk operations.

User Registrations /user/{user}/registrations

View all registrations associated with a specific user account.

Manage Registrations /{entity_type}/{entity}/registrations

View and manage all registrations for a specific host entity (node, product, etc.).

Registration Settings /{entity_type}/{entity}/registrations/settings

Configure registration settings for a specific host entity including enable/disable, capacity, dates, and notifications.

Email registrants /{entity_type}/{entity}/registrations/broadcast

Send broadcast email to all registrants of a specific host entity.

Register /{entity_type}/{entity}/register

Registration form for users to sign up for an event or entity.

Permissions 9
Access the registrations overview page

View the administrative listing of registrations

Administer registration types

Manage registration types, fields and display settings (restricted)

Administer registrations

View, edit, delete and manage all registrations regardless of type (restricted)

Create registrations

Create registrations regardless of type, including registering other users and anonymous people

Delete host registrations

Delete registrations for host entities to which user has edit access

Update host registrations

Update registrations for host entities to which user has edit access

View registrations

View all registrations regardless of type

View host registrations

View all registrations for host entities to which user has edit access

View own registrations

View own registrations regardless of type

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
Registration form not appearing on entity page

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.

Users cannot register despite registration being enabled

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.

Reminder emails not being sent

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 registrations not expiring

Held registration expiration requires cron to run. Check the registration type's hold expiration hours setting. Ensure the expiration state is configured correctly.

Views relationship to user registrations not working

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