示例#1
0
 function Process($method = '')
 {
     $cc_contact = new CC_Contact();
     $params = $_POST;
     $reg_tix = empty($_POST['individual_tix']) ? 0 : $_POST['individual_tix'];
     $sen_tix = empty($_POST['senior_tix']) ? 0 : $_POST['senior_tix'];
     $stu_tix = empty($_POST['student_tix']) ? 0 : $_POST['student_tix'];
     $total = $reg_tix * 250 + $sen_tix * 150 + $stu_tix * 75;
     $_SESSION['register']['total'] = $total;
     $guest_first_name = $params['guest_first_name'];
     $guest_last_name = $params['guest_last_name'];
     $guest_middle_initial = $params['guest_middle_initial'];
     $guest_email = $params['guest_email'];
     $guest_custom_field2 = $params['guest_custom_fields'];
     unset($params['individual_tix']);
     unset($params['senior_tix']);
     unset($params['student_tix']);
     unset($params['guest_first_name']);
     unset($params['guest_last_name']);
     unset($params['guest_middle_initial']);
     unset($params['guest_email']);
     unset($params['guest_custom_fields']);
     if ($cc_contact->subscriberExists($params['email_address']) == true) {
         $details = $cc_contact->getSubscriberDetails($params['email_address']);
         $id = explode('/', $details['id'][0]);
         $contact = $cc_contact->getContact($id[7]);
         $params['home_phone'] = $_POST['residence'] == 0 ? $params['phone'] : (string) $details['home_number'];
         $params['work_phone'] = $_POST['residence'] == 1 ? $params['phone'] : (string) $details['work_number'];
         $params['Addr1'] = $params['address_line_1'];
         $params['City'] = $params['city_name'];
         $params['PostalCode'] = $params['zip_code'];
         unset($params['address_line_1']);
         unset($params['city_name']);
         unset($params['zip_code']);
         unset($params['phone']);
         unset($params['residence']);
         foreach ($params as $key => $val) {
             if (!is_array($val)) {
                 $tmp = explode('_', $key);
                 foreach ($tmp as $i => $k) {
                     $tmp[$i] = ucfirst($k);
                 }
                 $new_key = implode('', $tmp);
                 $params[$new_key] = $val;
                 if (sizeof($tmp) > 1) {
                     unset($params[$key]);
                 }
             }
         }
         foreach ($params['custom_fields'] as $key => $val) {
             $field = 'CustomField' . $key;
             $params[$field] = $val;
             unset($params['custom_fields']);
         }
         $countries = $cc_contact->getCountries();
         $states = $cc_contact->getStates();
         $ccl = new CC_List();
         $found = false;
         if (isset($contact->content->Contact->ContactLists->ContactList)) {
             foreach ($contact->content->Contact->ContactLists->ContactList as $contact_list) {
                 /**
                  * @todo: replace this url with appropriate Constant Contact list ID
                  * List of CC List IDs can be seen on /test.php
                  */
                 if ($contact_list['id'] == 'http://api.constantcontact.com/ws/customers/JamhourUS/lists/42') {
                     $found = true;
                 }
             }
         }
         if ($found == false) {
             $count = sizeof($contact->content->Contact->ContactLists->ContactList);
             /**
              * @todo: replace this url with appropriate Constant Contact list ID
              * List of CC List IDs can be seen on /test.php
              */
             $contact->content->Contact->ContactLists->ContactList[$count]['id'] = 'http://api.constantcontact.com/ws/customers/JamhourUS/lists/42';
         }
         $contact->content->Contact->LastName = !empty($params['LastName']) ? $params['LastName'] : $contact->content->Contact->LastName;
         $contact->content->Contact->FirstName = !empty($params['FirstName']) ? $params['FirstName'] : $contact->content->Contact->FirstName;
         $contact->content->Contact->MiddleName = !empty($params['MiddleName']) ? $params['MiddleName'] : $contact->content->Contact->MiddleName;
         $contact->content->Contact->CompanyName = !empty($params['CompanyName']) ? $params['CompanyName'] : $contact->content->Contact->CompanyName;
         /*
         			$contact->content->Contact->StateCode	= ( !empty($params['StateCode']) ) ? strtoupper($params['StateCode']) : $contact->content->Contact->StateCode;
         			$contact->content->Contact->StateName	= $states[(string)$contact->content->Contact->StateCode];
         			$contact->content->Contact->CountryCode	= $params['CountryCode'];
         			$contact->content->Contact->CountryName	= $countries[$params['CountryCode']];
         * 
         */
         $contact->content->Contact->Addr1 = !empty($params['Addr1']) ? $params['Addr1'] : $contact->content->Contact->Addr1;
         $contact->content->Contact->City = !empty($params['City']) ? $params['City'] : $contact->content->Contact->City;
         $contact->content->Contact->PostalCode = !empty($params['PostalCode']) ? $params['PostalCode'] : $contact->content->Contact->PostalCode;
         $contact->content->Contact->HomePhone = !empty($params['HomePhone']) ? $params['HomePhone'] : $contact->content->Contact->HomePhone;
         $contact->content->Contact->WorkPhone = !empty($params['WorkPhone']) ? $params['WorkPhone'] : $contact->content->Contact->WorkPhone;
         $contact->content->Contact->CustomField2 = !empty($params['CustomField2']) ? $params['CustomField2'] : $contact->content->Contact->CustomField2;
         $contact->content->Contact->CustomField7 = !empty($params['CustomField7']) ? $params['CustomField7'] : $contact->content->Contact->CustomField7;
         $new = $contact->asXML();
         $add = $cc_contact->editSubscriber($details['id'][0], $contact->asXML());
     } else {
         $params = $_POST;
         $params['status'] = '';
         $cc_list = new CC_List();
         $lists = $cc_list->getLists();
         foreach ($lists as $list) {
             if ($list['title'] == 'Website Testing') {
                 $params['lists'] = array($list['id']);
                 break;
             }
         }
         if ($_POST['residence'] == 0) {
             $params['home_number'] = $_POST['phone'];
             $params['work_number'] = '';
         } else {
             $params['home_number'] = '';
             $params['work_number'] = $_POST['phone'];
         }
         $xml = $cc_contact->createContactXML(null, $params);
         $add = $cc_contact->addSubscriber($xml);
     }
     $this->AddGuests();
     if ($method == 'ByCheck') {
         header("Location:http://" . $_SERVER['HTTP_HOST'] . "/Register/Confirmation/ByCheck/");
     } else {
         $this->PayPalRedir();
     }
 }