purge_users-8.x-2.0/src/Plugin/BatchWorker/BatchWorker.php

src/Plugin/BatchWorker/BatchWorker.php
<?php

declare(strict_types=1);

namespace Drupal\purge_users\Plugin\BatchWorker;

use Drupal\user\Entity\User;

/**
 * Purge user and notify.
 *
 * @package Drupal\purge_users\Plugin\BatchWorker
 */
class BatchWorker {

  /**
   * Process items in a batch.
   */
  public static function batchWorkerPurgeUsers($id, &$context): void {
    $account = User::load($id);
    if (!isset($context['results']['processed'])) {
      $context['results']['processed'] = 0;
    }
    $config = \Drupal::config('purge_users.settings');
    $method = $config->get('purge_user_cancel_method') != 'user_cancel_site_policy' ? $config->get('purge_user_cancel_method') : \Drupal::config('user.settings')
      ->get('cancel_method');
    $name = $account->get('name')->value;
    /** @var \Drupal\purge_users\Services\UserManagementServiceInterface $userManagement */
    $userManagement = \Drupal::service('purge_users.user_management');
    $userManagement->purgeUser($account, $method);
    $context['message'] = "Now processing $name ...";

    // Update our progress information.
    $context['results']['processed']++;
  }

  /**
   * Sends users pre-notifications in a batch.
   */
  public static function batchWorkerNotifyUsers($id, &$context): void {
    $account = User::load($id);

    if (!isset($context['results']['processed'])) {
      $context['results']['processed'] = 0;
    }

    // Update our progress information.
    $context['results']['processed']++;
    if (!$account) {
      return;
    }
    $name = $account->get('name')->value;
    /** @var \Drupal\purge_users\Services\UserManagementServiceInterface $userManagement */
    $userManagement = \Drupal::service('purge_users.user_management');
    $userManagement->notifyUser($account);
    $context['message'] = "$name notified.";
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc