diff --git a/registration_role_with_approval.module b/registration_role_with_approval.module index 2791406..96cca2b 100644 --- a/registration_role_with_approval.module +++ b/registration_role_with_approval.module @@ -36,28 +36,49 @@ function registration_role_with_approval_add_role($form, &$form_state){ $config = \Drupal::config('registration_role_with_approval.settings'); $available_roles = $config->get('profile_roles'); $user = \Drupal\user\Entity\User::load($form_state->getValue('uid')); - $approval_role_selected = array(); + $roles_needs_approval = array(); foreach($available_roles as $role){ if($form_state->getValue($role['id'])){ $user->addRole($role['id']); - if($role['needs_approval']){ - $approval_role_selected[] = $role; + if($role['needs_approval']) { + $roles_needs_approval[] = $role; } } } $user->save(); // Send email notification to configured mails - if (!empty($approval_role_selected)){ - $params['account'] = $user; + if (!empty($roles_needs_approval)){ + $params['user'] = $user; + $params['roles_needs_approval'] = $roles_needs_approval; $mailing_list = explode(" ", $config->get('mailing_list')); if(!empty($mailing_list)){ foreach($mailing_list as $email){ $mail_manager = Drupal::service('plugin.manager.mail'); - $mail_manager->mail('user', 'register_pending_approval_admin', $email, \Drupal::currentUser()->getPreferredLangcode(), $params); + $mail_manager->mail('registration_role_with_approval', 'registration_with_approval', $email, \Drupal::currentUser()->getPreferredLangcode(), $params); } } } } + +/** + * Implements hook_mail(). + */ +function registration_role_with_approval_mail($key, &$message, $params) { + switch ($key) { + case 'registration_with_approval': + $roles = ""; + foreach ($params['roles_needs_approval'] as $roles_needs_approval) { + $roles .= $roles_needs_approval['label'] . " "; + } + $mail_subject = \Drupal::config('registration_role_with_approval.settings')->get('email_subject'); + $mail_body = \Drupal::config('registration_role_with_approval.settings')->get('email_body'); + $mail_body = str_replace('!username', $params['user']->name, $mail_body); + $mail_body = str_replace('!roles', $roles, $mail_body); + $message['subject'] = $mail_subject; + $message['body'][] = $mail_body; + break; + } +} \ No newline at end of file