Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.55 KB | None | 0 0
  1. function sonesta_travelpass_sign_up_form_submit(&$form, &$form_state) {
  2.   $values = $form_state['values'];
  3.   $username = variable_get(SONESTA_GUESTWARE_USERNAME);
  4.   $password = variable_get(SONESTA_GUESTWARE_PASSWORD);
  5.   $guestDetails = new GuestDetails($username, $password);
  6.   $contexts = context_active_contexts();
  7.   $profileType = 'Member';
  8.   $send_email = FALSE;
  9.   if (isset($contexts['special_enrollment'])) {
  10.     $profileType = 'Elite';
  11.     $send_email = TRUE;
  12.   }
  13.   $source = 'Website';
  14.   if (isset($values['wifi'])) {
  15.     $wifi = drupal_parse_url($values['wifi']);
  16.     if (isset($wifi['query']['property_code'])) {
  17.       $property_code = $wifi['query']['property_code'];
  18.       if ($property_code == 0){
  19.         $source = 'WIFI - Sonesta Corporate';
  20.       }
  21.       else {
  22.         $source = 'WIFI-' . $property_code;
  23.         $hotel = db_query("SELECT g.title
  24.                        FROM {field_data_field_property_synxis_id} i
  25.                            INNER JOIN {groups} g ON g.gid = i.entity_id
  26.                        WHERE i.field_property_synxis_id_value = :id", [':id' => $property_code])->fetchField();
  27.  
  28.         if (!empty($hotel)) {
  29.           $source = 'WIFI-' . $hotel;
  30.         }
  31.       }
  32.     }
  33.   }
  34.   $guestDetails->addGuest(0, $values['last_name'], NULL, $values['first_name'], NULL, NULL, NULL, $profileType, $source, 'inserted');
  35.   $guestDetails->addGuestIssuedId(0, 'inserted');
  36.   $guestDetails->addGuestContactLog(0, 0, '', 'inserted');
  37.   $email = $values['email'];
  38.   $guestDetails->addCommunication(0, 'Email', $email, 'inserted');
  39.   $state = NULL;
  40.   if (isset($values['state'])) {
  41.     $state = $values['state'];
  42.   }
  43.   $addressType = 'Home';
  44.   if (!empty($values['address_type'])) {
  45.     $addressType = $values['address_type'];
  46.   }
  47.   $guestDetails->addAddress(0, $addressType, $values['country'], $values['postal_code'], $state, $values['city'], $values['address_1'], $values['address_2'], 'inserted');
  48.   watchdog('sonesta_guestware_api_update_guest_details', 'Creating new guest @guest', array('@guest' => $email), WATCHDOG_DEBUG);
  49.   $results = sonesta_guestware_api_update_guest_details($guestDetails);
  50.   if (preg_match('%GuestID>(\d+)</GuestID%si', $results, $matches)) {
  51.     $login = new GuestLogin($username, $password, TRUE);
  52.     $login->addGuest($matches[1], $email, $values['password']);
  53.     watchdog('sonesta_guestware_api_update_guest_login', 'Guest @guest (@id) created, updating password', array('@guest' => $email, '@id' => $matches[1]), WATCHDOG_DEBUG);
  54.     $results2 = sonesta_guestware_api_update_guest_login($login);
  55.     if (preg_match('%GuestID>(\d+)</GuestID%i', $results2, $matches)) {
  56.       if (isset($values['wifi'])) {
  57.         $wifi = drupal_parse_url($values['wifi']);
  58.         $url = url(urldecode($wifi['path']), ['query' => $wifi['query'], 'external' => TRUE]);
  59.         watchdog('travel_pass', 'Redirecting to SafetyNet', array(), WATCHDOG_DEBUG);
  60.         drupal_goto('travel-pass/wifi/redirect', ['query' => ['url' => $url]]);
  61.       }
  62.       else {
  63.         $results = sonesta_guestware_api_read_guest_login($matches[1]);
  64.         if (!empty($results)) {
  65.           if ($values['password'] == $results->GuestLoginPassword) {
  66.             if ($send_email) {
  67.               sonesta_exact_target_triggered_send(variable_get(SONESTA_ET_WELCOME), $email, [
  68.                 [
  69.                   'Name' => 'Username',
  70.                   'Value' => $email,
  71.                 ],
  72.                 [
  73.                   'Name' => 'resetUrl',
  74.                   'Value' => sonesta_travelpass_reset_url($matches[1], $values['password']),
  75.                 ],
  76.                 [
  77.                   'Name' => 'FirstName',
  78.                   'Value' => $values['first_name'],
  79.                 ],
  80.                 [
  81.                   'Name' => 'LastName',
  82.                   'Value' => $values['last_name'],
  83.                 ],
  84.               ], $matches[1]);
  85.             }
  86.             sonesta_travelpass_save_guest_info($results);
  87.             drupal_set_message(t('Registration successful'));
  88.             drupal_goto('travel-pass/member-profile');
  89.           }
  90.         }
  91.         else {
  92.           watchdog('sonesta_guestware_api_read_guest_login', 'No results for @id', array('@id' => $matches[1]), WATCHDOG_ERROR);
  93.         }
  94.       }
  95.     }
  96.     watchdog('sonesta_guestware_api_update_guest_login', 'Unable to set password for @guest', array('@guest' => $email), WATCHDOG_ERROR);
  97.   }
  98.   else {
  99.     watchdog('sonesta_guestware_api_update_guest_details', 'Unable to create Travel Pass account @guest', array('@guest' => $email), WATCHDOG_ERROR);
  100.   }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement