define("SOAP_CLIENT_BASEDIR", "salesforce/soapclient"); /* Change with your values below */ $lead_type = "lead type"; $hear_from = "hear from"; $page = "page url"; $email_to = "email@to"; $wsdlFile = SOAP_CLIENT_BASEDIR . '/enterprise.wsdl.xml'; $sfUser = "sf.user@greenplum.com"; $sfPass = "sf.pass"; $sfDesc = 'sf descriptions'; $sfTracking = true; $trackFile = 'track_lead.txt'; /*------------------------------------*/ set_time_limit(180); $log = "\ntime 1 "; $log .= date('Y-m-d H:i:s'); global $gCms; $feusers = $gCms->modules['FrontEndUsers']['object']; $feuProperties = $feusers->GetUserProperties($params['id']); if ($feuProperties) { foreach ($feuProperties as $property) { switch ($property['title']) { case 'industry' : $industry = $property['data']; break; case 'country' : $country = $property['data']; break; case 'phone' : $phone = $property['data']; break; case 'company' : $company = $property['data']; break; case 'first_name' : $first_name = $property['data']; break; case 'last_name' : $last_name = $property['data']; break; case 'title' : $jobtitle = $property['data']; break; case 'email' : $email = $property['data']; break; } } $log .= "\ntime 2 "; $log .= date('Y-m-d H:i:s'); $first_name = stripslashes($first_name); $last_name = stripslashes($last_name); $email = stripslashes($email); $phone = stripslashes($phone); $company = stripslashes($company); $message = 'A new lead was created. It will be sended to salesforce.com.'; $message .= "Company: $company\n"; $message .= "First Name: $first_name\n"; $message .= "Last Name: $last_name\n"; $message .= "Email: $email\n"; $message .= "Title: $jobtitle\n"; $message .= "Phone: $phone\n"; $message .= "Industry: $industry\n\n"; $message .= "Country: $country\n\n"; $message .= "URL: $page\n"; $subject = $lead_type; $log .= "\ntime 4 "; $log .= date('Y-m-d H:i:s'); if (is_object($gCms->modules['CMSMailer']['object'])) { $cmsmailer = $gCms->modules['CMSMailer']['object']; $cmsmailer->AddAddress($email_to); $cmsmailer->SetBody($message); $cmsmailer->IsHTML(false); $cmsmailer->SetSubject($subject); $cmsmailer->Send(); } $log .= "\ntime 5 "; $log .= date('Y-m-d H:i:s'); require_once (SOAP_CLIENT_BASEDIR . '/SforceEnterpriseClient.php'); require_once (SOAP_CLIENT_BASEDIR . '/SforceHeaderOptions.php'); try { $mySforceConnection = new SforceEnterpriseClient(); $log .= "\ntime 6 "; $log .= date('Y-m-d H:i:s'); $mySoapClient = $mySforceConnection->createConnection($wsdlFile); $log .= "\ntime 7 "; $log .= date('Y-m-d H:i:s'); $mylogin = $mySforceConnection->login($sfUser, $sfPass); $log .= "\ntime 8 "; $log .= date('Y-m-d H:i:s'); $sObject = new stdclass(); $sObject->FirstName = $first_name; $sObject->LastName = $last_name; $sObject->Email = $email; $sObject->Status = "New"; $sObject->LeadSource = "$hear_from"; $sObject->Description = $sfDesc; $sObject->Title = $jobtitle; $sObject->Company = $company; $sObject->Country = $country; $sObject->Industry = $industry; $sObject->Phone = $phone; $sObject->Referred_By__c = "web site"; $sObject->status_description__c = "$lead_type"; $response = $mySforceConnection->create(array ($sObject), 'Lead'); $log .= "\ntime 9 "; $log .= date('Y-m-d H:i:s'); $sfResponse = print_r($response, true); } catch (Exception $e) { $lastRequest = $mySforceConnection->getLastRequest(); $faultString = $e->faultstring; $sfResponse = $lastRequest . " - " . $faultString; } $log .= "\ntime 10 "; $log .= date('Y-m-d H:i:s'); // tracking responses from salesforce if ($sfTracking) { $fh = fopen($trackFile, 'a'); fwrite($fh, "Client IP:" . $_SERVER['REMOTE_ADDR'] . "\nsalesforce.com response:" . $sfResponse . "\nDate:" . date('c') . $log . "\n--------------------\n"); fclose($fh); } // end tracking }