| Server IP : 138.197.176.125 / Your IP : 216.73.217.122 Web Server : Apache/2.4.41 (Ubuntu) System : Linux SuiteCRM-8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/vtigerversion80/ |
Upload File : |
<?php
include_once 'include/Webservices/Relation.php';
include_once 'vtlib/Vtiger/Module.php';
include_once 'includes/main/WebUI.php';
header('Content-Type: text/html; charset=utf-8');
global $current_user, $adb;
$current_user = Users::getActiveAdminUser();
$request_body = file_get_contents('php://input');
$RequestData = json_decode($request_body,true);
foreach ($RequestData['entry'] as $key => $value) {
$leadGenData = $value;
foreach ($leadGenData['changes'] as $changesKey => $changesValue) {
$filename = 'facebook_changes.txt';
$time_utc = new DateTime('now', new DateTimeZone('UTC'));
$currentTimestamp = $time_utc->format('Y-m-d H:i:s');
$user_postData = $currentTimestamp." schedule later method call, next trigger time is ";
if (file_exists($filename)) {
$userfile = fopen($filename, "a+");
fwrite($userfile,"\n". print_r($changesValue,true));
fclose($userfile);
} else {
$userfile = fopen($filename, "w+");
fwrite($userfile, print_r($changesValue,true));
fclose($userfile);
}//end of else
$changesValueData = $changesValue;
$valueData = $changesValueData['value'];
$responseData = $valueData;
$formId = $responseData['form_id'];
$leadgenId = $responseData['leadgen_id'];
$pageId = $responseData['page_id'];
$adsId = $responseData['ad_id'];
$getContactDetailsQuery = $adb->pquery("SELECT * FROM ct_facebooklead_formstatus WHERE formid LIKE '%$formId%' AND enable=?",array(1));
$numOfRows = $adb->num_rows($getContactDetailsQuery);
for ($i=0; $i < $numOfRows; $i++) {
$faceBookFormId = $adb->query_result($getContactDetailsQuery,$i,'formid');
if($formId == $faceBookFormId){
$getFacebookConfiguration = $adb->pquery("SELECT * FROM ct_facebooklead_configuration");
$accessToken = $adb->query_result($getFacebookConfiguration,0,'accesstoken');
$getFacebookConfiguration = $adb->pquery("SELECT * FROM ct_facebooklead_fieldmapping WHERE formid = ?",array($formId));
$facebookFieldMappingCount = $adb->num_rows($getFacebookConfiguration);
$facebookMapping = array();
for ($j=0; $j < $facebookFieldMappingCount; $j++) {
$vtigerFieldName = $adb->query_result($getFacebookConfiguration, $j, 'vtiger_fields');
$facebookFieldName = $adb->query_result($getFacebookConfiguration, $j, 'facebook_fields');
$facebookMapping[$facebookFieldName] = $vtigerFieldName;
}//end of for
if(!empty($facebookMapping)){
$formNameURL = "https://graph.facebook.com/v19.0/".$formId."?&access_token=".$accessToken;
$getFacebookFormName = Settings_CTFacebookLeadIntegration_Record_Model::getFacebookData($formNameURL,'GET');
$facebookFormName = $getFacebookFormName['name'];
$pageNameURL = "https://graph.facebook.com/v19.0/".$pageId."?&access_token=".$accessToken;
$getFacebookPageName = Settings_CTFacebookLeadIntegration_Record_Model::getFacebookData($pageNameURL,'GET');
$facebookPageName = $getFacebookPageName['name'];
if($adsId){
$adsNameURL = "https://graph.facebook.com/v14.0/".$adsId."?fields=name&access_token=".$accessToken;
$getFacebookAdsName = Settings_CTFacebookLeadIntegration_Record_Model::getFacebookData($adsNameURL,'GET');
$facebookAdsName = $getFacebookAdsName['name'];
}//end of if
$fieldURL = "https://graph.facebook.com/v19.0/".$leadgenId."?&access_token=".$accessToken;
for ($i=0; $i < 4; $i++) {
sleep(5);
$getFacebookFormField = Settings_CTFacebookLeadIntegration_Record_Model::getFacebookData($fieldURL,'GET');
$getLeadGenFormData = $getFacebookFormField['field_data'];
//if(in_array($getLeadGenFormData)){
if($leadgenId == $getLeadGenFormData['id']){
break;
}//end of if
}//end of for
if(!empty($getLeadGenFormData)){
$checkLeadExists = $adb->pquery("SELECT * FROM vtiger_leaddetails INNER JOIN vtiger_leadaddress ON vtiger_leadaddress.leadaddressid = vtiger_leaddetails.leadid INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid WHERE vtiger_crmentity.deleted = 0 AND vtiger_leadaddress.fax = ?",array($leadgenId));
if($adb->num_rows($checkLeadExists) == 0){
$mappingData = array();
$leadsRecordModel = Vtiger_Record_Model::getCleanInstance('Leads');
$leadsRecordModel->set('mode','');
foreach ($getLeadGenFormData as $leadKey => $leadValue) {
$leadValueData = $leadValue;
$leadValueName = $leadValueData['name'];
if(array_key_exists($leadValueName, $facebookMapping)){
$leadVtigerFieldName = $facebookMapping[$leadValueName];
$leadFieldValue = $leadValueData['values'];
$leadsRecordModel->set($leadVtigerFieldName, $leadFieldValue[0]);
}//end of if
}//end of foreach
$getCustomMappingQuery = $adb->pquery("SELECT * FROM ct_facebooklead_fieldmapping WHERE facebook_fields = 'custom' AND formid = ?",array($formId));
$customNumOfRows = $adb->num_rows($getCustomMappingQuery);
for ($custom=0; $custom < $customNumOfRows; $custom++) {
$leadVtigerFieldName = $adb->query_result($getCustomMappingQuery,$custom,'vtiger_fields');
$leadCustomFieldValue = $adb->query_result($getCustomMappingQuery,$custom,'custom_fields');
if($leadVtigerFieldName == 'utm_campaign' && $leadCustomFieldValue != ''){
$getCampaignDataQuery = $adb->pquery("SELECT vtiger_crmentity.crmid FROM vtiger_campaign INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_campaign.campaignid WHERE vtiger_crmentity.deleted = 0 AND vtiger_campaign.campaignname = '$leadCustomFieldValue'");
if($adb->num_rows($getCampaignDataQuery)){
$leadVtigerFieldValue = $adb->query_result($getCampaignDataQuery,0,'crmid');
}else{
$campaignRecordModel = Vtiger_Record_Model::getCleanInstance('Campaigns');
$campaignRecordModel->set('mode','');
$campaignRecordModel->set('campaignname',$leadCustomFieldValue);
$campaignRecordModel->save();
$leadVtigerFieldValue = $campaignRecordModel->getId();
}//end of else
}else{
$leadVtigerFieldValue = $leadCustomFieldValue;
}//end of else
$leadsRecordModel->set($leadVtigerFieldName, $leadVtigerFieldValue);
}//end of for
$leadsRecordModel->set('source', 'Facebook Lead');
$fax = $leadgenId;
$leadsRecordModel->set('fax',$fax);
$leadsRecordModel->save();
$recordId = $leadsRecordModel->getId();
$adb->pquery("UPDATE vtiger_leaddetails SET facebook_page_name = ?, facebook_form_name = ?, facebook_lead_ads_name = ? WHERE leadid = ?",array($facebookPageName,$facebookFormName,$facebookAdsName,$recordId));
}//end of if
}//end of if
}//end of if
}//end of if
}//end of for
}//end of foreach
}//end of foreach
?>