You are here

public function SmartIpLocation::save in Smart IP 8.2

Same name and namespace in other branches
  1. 8.4 src/SmartIpLocation.php \Drupal\smart_ip\SmartIpLocation::save()
  2. 8.3 src/SmartIpLocation.php \Drupal\smart_ip\SmartIpLocation::save()

Saves the Smart IP location data to user data and session (for anonymous, saves to session only).

Overrides SmartIpLocationInterface::save

File

src/SmartIpLocation.php, line 189
Contains \Drupal\smart_ip\SmartIpLocation.

Class

SmartIpLocation
Implements wrapper and utility methods for Smart IP's data location.

Namespace

Drupal\smart_ip

Code

public function save() {
  $user = \Drupal::currentUser();
  $data['location'] = $this->allData;

  // Allow other modules to modify country list via hook_smart_ip_user_save_alter()
  \Drupal::moduleHandler()
    ->alter('smart_ip_user_save', $user, $data);

  // Save the Smart IP location in current user's session
  SmartIp::setSession('smart_ip', $data);
  if ($user
    ->id() != 0) {

    /** @var \Drupal\user\UserData $userData */
    $userData = \Drupal::service('user.data');

    // Save the Smart IP location to current user's user_data
    $userData
      ->set('smart_ip', $user
      ->id(), 'geoip_location', $data);
  }
}