Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function sonesta_travelpass_sign_up_form_submit(&$form, &$form_state) {
- $values = $form_state['values'];
- $username = variable_get(SONESTA_GUESTWARE_USERNAME);
- $password = variable_get(SONESTA_GUESTWARE_PASSWORD);
- $guestDetails = new GuestDetails($username, $password);
- $contexts = context_active_contexts();
- $profileType = 'Member';
- $send_email = FALSE;
- if (isset($contexts['special_enrollment'])) {
- $profileType = 'Elite';
- $send_email = TRUE;
- }
- $source = 'Website';
- if (isset($values['wifi'])) {
- $wifi = drupal_parse_url($values['wifi']);
- if (isset($wifi['query']['property_code'])) {
- $property_code = $wifi['query']['property_code'];
- if ($property_code == 0){
- $source = 'WIFI - Sonesta Corporate';
- }
- else {
- $source = 'WIFI-' . $property_code;
- $hotel = db_query("SELECT g.title
- FROM {field_data_field_property_synxis_id} i
- INNER JOIN {groups} g ON g.gid = i.entity_id
- WHERE i.field_property_synxis_id_value = :id", [':id' => $property_code])->fetchField();
- if (!empty($hotel)) {
- $source = 'WIFI-' . $hotel;
- }
- }
- }
- }
- $guestDetails->addGuest(0, $values['last_name'], NULL, $values['first_name'], NULL, NULL, NULL, $profileType, $source, 'inserted');
- $guestDetails->addGuestIssuedId(0, 'inserted');
- $guestDetails->addGuestContactLog(0, 0, '', 'inserted');
- $email = $values['email'];
- $guestDetails->addCommunication(0, 'Email', $email, 'inserted');
- $state = NULL;
- if (isset($values['state'])) {
- $state = $values['state'];
- }
- $addressType = 'Home';
- if (!empty($values['address_type'])) {
- $addressType = $values['address_type'];
- }
- $guestDetails->addAddress(0, $addressType, $values['country'], $values['postal_code'], $state, $values['city'], $values['address_1'], $values['address_2'], 'inserted');
- watchdog('sonesta_guestware_api_update_guest_details', 'Creating new guest @guest', array('@guest' => $email), WATCHDOG_DEBUG);
- $results = sonesta_guestware_api_update_guest_details($guestDetails);
- if (preg_match('%GuestID>(\d+)</GuestID%si', $results, $matches)) {
- $login = new GuestLogin($username, $password, TRUE);
- $login->addGuest($matches[1], $email, $values['password']);
- watchdog('sonesta_guestware_api_update_guest_login', 'Guest @guest (@id) created, updating password', array('@guest' => $email, '@id' => $matches[1]), WATCHDOG_DEBUG);
- $results2 = sonesta_guestware_api_update_guest_login($login);
- if (preg_match('%GuestID>(\d+)</GuestID%i', $results2, $matches)) {
- if (isset($values['wifi'])) {
- $wifi = drupal_parse_url($values['wifi']);
- $url = url(urldecode($wifi['path']), ['query' => $wifi['query'], 'external' => TRUE]);
- watchdog('travel_pass', 'Redirecting to SafetyNet', array(), WATCHDOG_DEBUG);
- drupal_goto('travel-pass/wifi/redirect', ['query' => ['url' => $url]]);
- }
- else {
- $results = sonesta_guestware_api_read_guest_login($matches[1]);
- if (!empty($results)) {
- if ($values['password'] == $results->GuestLoginPassword) {
- if ($send_email) {
- sonesta_exact_target_triggered_send(variable_get(SONESTA_ET_WELCOME), $email, [
- [
- 'Name' => 'Username',
- 'Value' => $email,
- ],
- [
- 'Name' => 'resetUrl',
- 'Value' => sonesta_travelpass_reset_url($matches[1], $values['password']),
- ],
- [
- 'Name' => 'FirstName',
- 'Value' => $values['first_name'],
- ],
- [
- 'Name' => 'LastName',
- 'Value' => $values['last_name'],
- ],
- ], $matches[1]);
- }
- sonesta_travelpass_save_guest_info($results);
- drupal_set_message(t('Registration successful'));
- drupal_goto('travel-pass/member-profile');
- }
- }
- else {
- watchdog('sonesta_guestware_api_read_guest_login', 'No results for @id', array('@id' => $matches[1]), WATCHDOG_ERROR);
- }
- }
- }
- watchdog('sonesta_guestware_api_update_guest_login', 'Unable to set password for @guest', array('@guest' => $email), WATCHDOG_ERROR);
- }
- else {
- watchdog('sonesta_guestware_api_update_guest_details', 'Unable to create Travel Pass account @guest', array('@guest' => $email), WATCHDOG_ERROR);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement