For cleaner, decoupled code, consider Symfony Event Subscribers if you are using the Hook Event Dispatcher module.
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. drupal-8-user-register-hook
Best for modifying data (e.g., adding a default role) before it hits the database. Runs after the user is created. Runs after the user is created
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 set a field value $user->set('field_welcome_status'
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