Drupal-8-user-register-hook May 2026
To hook into the user registration process in Drupal 8 (and 9/10+), you typically use entity hooks since users are treated as content entities. 🛠️ Recommended Hooks
If you need to stop registration based on custom business logic (e.g., checking an external blacklist), use a custom validation handler via hook_form_alter .
This is the standard approach to identify a vs. an existing user being updated. drupal-8-user-register-hook
use Drupal\user\UserInterface; /** * Implements hook_ENTITY_TYPE_presave() for user entities. */ function my_module_user_presave(UserInterface $user) { // Check if this is a new user registration if ($user->isNew()) { // Perform custom logic, e.g., set a field value $user->set('field_welcome_status', 'Pending'); } } Use code with caution. Copied to clipboard 🎯 Key Considerations
Best for modifying data (e.g., adding a default role) before it hits the database. Runs after the user is created. To hook into the user registration process in
The most effective way to intercept or modify user data during registration is through the following hooks: Usage Note Runs before the user is saved.
Do you need help on the registration form, or are you looking to redirect users after they sign up? an existing user being updated
Use this for actions that require the new User ID, like sending a custom welcome email or creating related profile entries. Modifies the registration form .