You are here

class ActivitySendEmailWorker in Open Social 8

Same name and namespace in other branches
  1. 8.9 modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  2. 8.2 modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  3. 8.3 modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  4. 8.4 modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  5. 8.5 modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  6. 8.6 modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  7. 8.7 modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  8. 8.8 modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  9. 10.3.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  10. 10.0.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  11. 10.1.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker
  12. 10.2.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php \Drupal\activity_send_email\Plugin\QueueWorker\ActivitySendEmailWorker

An activity send email worker.

@QueueWorker( id = "activity_send_email_worker", title = @Translation("Process activity_send_email queue."), cron = {"time" = 60} )

This QueueWorker is responsible for sending emails from the queue

Hierarchy

Expanded class hierarchy of ActivitySendEmailWorker

File

modules/custom/activity_send/modules/activity_send_email/src/Plugin/QueueWorker/ActivitySendEmailWorker.php, line 22

Namespace

Drupal\activity_send_email\Plugin\QueueWorker
View source
class ActivitySendEmailWorker extends ActivitySendWorkerBase {

  /**
   * {@inheritdoc}
   */
  public function processItem($data) {

    // First make sure it's an actual Activity entity.
    if (!empty($data['entity_id']) && ($activity = Activity::load($data['entity_id']))) {

      // Get target account.
      $target_account = EmailActivityDestination::getSendTargetUser($activity);
      if ($target_account instanceof User) {

        // Get Message Template id.
        $message = Message::load($activity->field_activity_message->target_id);
        $message_template_id = $message
          ->getTemplate()
          ->id();

        // Retrieve the users email settings.
        $user_email_settings = EmailActivityDestination::getSendEmailUserSettings($target_account);

        // Determine email frequency to use, defaults to immediately.
        // @todo make these frequency constants?
        $frequency = 'immediately';
        if (!empty($user_email_settings[$message_template_id])) {
          $frequency = $user_email_settings[$message_template_id];
        }

        // Send item to EmailFrequency instance.
        // @todo use dependency injection for this.
        $emailfrequencymanager = \Drupal::service('plugin.manager.emailfrequency');
        $instance = $emailfrequencymanager
          ->createInstance($frequency);
        $instance
          ->processItem($activity, $message, $target_account);
      }
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ActivitySendEmailWorker::processItem public function Works on a single queue item. Overrides QueueWorkerInterface::processItem
ActivitySendWorkerBase::createQueueItem protected function Create queue item.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92