You are here

public static function SocialProfileFieldsBatch::performFlush in Open Social 10.3.x

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  2. 8.2 modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  3. 8.3 modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  4. 8.4 modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  5. 8.5 modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  6. 8.6 modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  7. 8.7 modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  8. 8.8 modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  9. 10.0.x modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  10. 10.1.x modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()
  11. 10.2.x modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php \Drupal\social_profile_fields\SocialProfileFieldsBatch::performFlush()

Perform the flush.

Parameters

array $pids: Profile id's.

array $fields: An array of fields to empty.

array $context: The context of the flush.

File

modules/social_features/social_profile/modules/social_profile_fields/src/SocialProfileFieldsBatch.php, line 28

Class

SocialProfileFieldsBatch
Class SocialProfileFieldsBatch.

Namespace

Drupal\social_profile_fields

Code

public static function performFlush(array $pids, array $fields, array &$context) {
  $message = 'Flushing profile data...';
  $results = [];
  foreach ($pids as $pid) {
    $profile = Profile::load($pid);
    foreach ($fields as $field_name) {

      // Check if the field exists.
      if ($profile
        ->hasField($field_name)) {

        // Empty the field.
        $profile
          ->set($field_name, '');
      }
      elseif ($field_name === 'locality') {
        $profile->field_profile_address->locality = '';
      }
      elseif ($field_name === 'addressLine1') {
        $profile->field_profile_address->address_line1 = '';
      }
      elseif ($field_name === 'postalCode') {
        $profile->field_profile_address->postal_code = '';
      }
    }

    // Save the profile.
    $results[] = $profile
      ->save();

    // Oh and also clear the profile cache while we're at it.
    Cache::invalidateTags([
      'profile:' . $profile
        ->id(),
    ]);
  }
  $context['message'] = $message;
  $context['results'] = $results;
}