You are here

function social_group_invite_mail_alter in Open Social 8.9

Same name and namespace in other branches
  1. 10.3.x modules/social_features/social_group/modules/social_group_invite/social_group_invite.module \social_group_invite_mail_alter()
  2. 10.0.x modules/social_features/social_group/modules/social_group_invite/social_group_invite.module \social_group_invite_mail_alter()
  3. 10.1.x modules/social_features/social_group/modules/social_group_invite/social_group_invite.module \social_group_invite_mail_alter()
  4. 10.2.x modules/social_features/social_group/modules/social_group_invite/social_group_invite.module \social_group_invite_mail_alter()

Implements hook_mail_alter().

File

modules/social_features/social_group/modules/social_group_invite/social_group_invite.module, line 518
The Social Invite group module.

Code

function social_group_invite_mail_alter(&$message) {
  if ($message['id'] === 'ginvite_invite') {
    $params = $message['params'];
    $token_service = \Drupal::token();
    $language_manager = \Drupal::languageManager();
    $langcode = $message['langcode'];
    $language = $language_manager
      ->getLanguage($langcode);
    $original_language = $language_manager
      ->getConfigOverrideLanguage();
    $language_manager
      ->setConfigOverrideLanguage($language);

    // Load group invite configuration.
    $group_config = \Drupal::config('social_group.settings');
    $invite_settings = $group_config
      ->get('group_invite');

    // Alter message and subject if it configured.
    if (!is_null($invite_settings) && isset($invite_settings['invite_subject'], $invite_settings['invite_message'])) {
      $invitation_subject = $invite_settings['invite_subject'];
      $invitation_body = $invite_settings['invite_message'];
      unset($params['existing_user']);
      $body = $token_service
        ->replace($invitation_body, $params);
      $subject = $token_service
        ->replace($invitation_subject, $params);
      $message['subject'] = $subject;
      $message['body'][0] = $body;
    }
    $language_manager
      ->setConfigOverrideLanguage($original_language);
  }
}