You are here

function social_event_invite_event_enrollment_insert in Open Social 8.9

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

Sends email when invitation created for not registered user.

Implements hook_ENTITY_TYPE_insert().

File

modules/social_features/social_event/modules/social_event_invite/social_event_invite.module, line 23
The Social event invite enroll module.

Code

function social_event_invite_event_enrollment_insert(EventEnrollmentInterface $eventEnrollment) {
  $messenger = \Drupal::messenger();
  $mail = $eventEnrollment
    ->get('field_email')
    ->getString();
  $langcode = 'en';
  $mailManager = \Drupal::service('plugin.manager.mail');
  $from = $eventEnrollment
    ->get('user_id')
    ->first()
    ->get('entity')
    ->getTarget()
    ->getValue();
  $node = $eventEnrollment
    ->get('field_event')
    ->first()
    ->get('entity')
    ->getTarget()
    ->getValue();
  $params = [
    'user' => $from,
    'node' => $node,
    'existing_user' => TRUE,
    'event_enrollment' => $eventEnrollment
      ->id(),
  ];

  // Only set this message when the request status is pending.
  if ((int) $eventEnrollment
    ->get('field_request_or_invite_status')->value === EventEnrollmentInterface::INVITE_PENDING_REPLY && empty($eventEnrollment
    ->get('field_account')
    ->getString())) {

    // Send a normal mail when the user has no account yet.
    $params['existing_user'] = FALSE;
    $mailManager
      ->mail('social_event_invite', 'invite', $mail, $langcode, $params, NULL, TRUE);
  }
}