Zoho Integration for cf7 Forms

PHOTO EMBED

Thu Aug 24 2023 13:06:14 GMT+0000 (Coordinated Universal Time)

Saved by @gshailesh27

//ajax code for cf7 form to ajax add into footer

<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
if ( '1851' == event.detail.contactFormId ) { // Change 34 to the ID of the form 
  
 
var nameToSearchfirstname = 'firstname';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchfirstname ) {
        firstname = element.value;
        return false; // break out of the loop
    }
});

var nameToSearchlastname = 'lastname';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchlastname ) {
        lastname = element.value;
        return false; // break out of the loop
    }
}); 

var nameToSearchemail = 'email';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchemail ) {
        email = element.value;
        return false; // break out of the loop
    }
}); 

var nameToSearchphone = 'phone';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchphone ) {
        phone = element.value;
        return false; // break out of the loop
    }
}); 

var nameToSearchaddress = 'address';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchaddress ) {
        address = element.value;
        return false; // break out of the loop
    }
}); 

var nameToSearcharea = 'area';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearcharea ) {
        area = element.value;
        return false; // break out of the loop
    }
});  
var nameToSearchpincode = 'pincode';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchpincode ) {
        pincode = element.value;
        return false; // break out of the loop
    }
});


var nameToSearchCity = 'City';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchCity ) {
        City = element.value;
        return false; // break out of the loop
    }
});

var nameToSearchState = 'State';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchState ) {
        State = element.value;
        return false; // break out of the loop
    }
});

var nameToSearchMessage = 'Message';
var myArray=event.detail.inputs;
// Loop through the array to find the element with the matching name
var value = null;
$.each( myArray, function( index, element ) {
    if ( element.name === nameToSearchMessage ) {
        Message = element.value;
        return false; // break out of the loop
    }
});
 
var firstname=firstname;
var lastname=lastname;
var email=email;
var phone=phone;
var address=address;
var area=area;
var pincode=pincode;
var City=City;
var State=State;
var Message=Message;

var ajaxurl = '<?php echo admin_url( 'admin-ajax.php' ); ?>';
$.ajax({
    url: ajaxurl,
    type: 'POST',
  dataType: "json",
  data: {
  action: 'posts_list',
  firstname: firstname,
  lastname: lastname,
  email: email,
  phone: phone,
  address: address,
  area: area,
  pincode: pincode,
  City: City,
  State: State,
  Message: Message,
  },
    success: function( response ) {
        // Handle the response from the PHP function
        //alert( response.status  );
    }
});
}
}, false );
</script> 


//add into function.php file ajax will send dta to this function for zoho


add_action('wp_ajax_posts_list', 'my_ajax_posts_list_handler');
add_action('wp_ajax_nopriv_posts_list', 'my_ajax_posts_list_handler');

function my_ajax_posts_list_handler()
{

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$address = $_POST['address'];
$area = $_POST['area'];
$pincode = $_POST['pincode'];
$City = $_POST['City'];
$State = $_POST['State'];
$Message = $_POST['Message'];
     
$url = "https://accounts.zoho.in/oauth/v2/token?refresh_token=1000.2b04cd5669c26e3890cc74b029f99a2c.3eb658b2a836fcc0332dde00d5b47fa0&client_id=1000.9DDL1Y80XDD1WC0EA939NS5IRN7A9G&client_secret=195c152ed93ff4b488d721ae97015485ed80e020af&grant_type=refresh_token";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$output = json_decode($result, true);
$access_token = $output['access_token'];
  
$sAccessToken =$access_token;
$sJSON = json_encode(array(
'First_Name' => $firstname,
'Last_Name' => $lastname,
'Email' => $email,
'Mobile' => $phone,
'Lead_Source' => 'Astral Pipes',
'Description' => $Message,
'Enquiry_Type' => 'Product Enquery',
'Platform' => 'Astral Pipes Website',
'Brand' => 'Astral Pipes',
'Street' => $address,
'City' => $City,
'State' => $State,
'Zip_Code' => $pincode,
'Country' => $State,
  ));
  $sJSON = str_replace('{','[{',$sJSON);
  $sJSON = str_replace('}','}]',$sJSON);
  $sJSON = '{"data":' . $sJSON . '}';
 
$sURL = 'https://www.zohoapis.in/crm/v2/Leads';
// $sResponse = @ file_get_contents($sURL,false,stream_context_create(array('http'=>array(
//   //'ignore_errors' => TRUE,
//   'method' => 'POST',
//   'header' => array(
//     'Content-Type: application/json',
//     "Authorization: Zoho-oauthtoken $sAccessToken",
//     'cache-control: no-cache'
//   ),
//   'content' => $sJSON
// ))));

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://www.zohoapis.in/crm/v2/Leads',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => $sJSON,
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    "Authorization: Zoho-oauthtoken $sAccessToken",
    'cache-control: no-cache',
    //'Cookie: 941ef25d4b=0b361335aa257e62aac2e61eb589da76; JSESSIONID=3359DC9F8AC41BAE873FE114C644CBD9; _zcsr_tmp=0b3f1a05-9107-4403-b24f-85a964f9f628; crmcsr=0b3f1a05-9107-4403-b24f-85a964f9f628'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

//echo json_encode(array("response"=>$sResponse)); 
//echo json_encode(array("sjson"=>$sJSON)); 
echo json_encode(array("status"=>$sAccessToken));     
             wp_die();   
}


// become a dealer form
add_action('wp_ajax_posts_list_four', 'my_ajax_posts_list_four_handler');
add_action('wp_ajax_nopriv_posts_list_four', 'my_ajax_posts_list_four_handler');

function my_ajax_posts_list_four_handler()
{

$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$pincode = $_POST['pincode'];
$productCat = $_POST['category'];
$Message = $_POST['Message'];
     
$url = "https://accounts.zoho.in/oauth/v2/token?refresh_token=1000.2b04cd5669c26e3890cc74b029f99a2c.3eb658b2a836fcc0332dde00d5b47fa0&client_id=1000.9DDL1Y80XDD1WC0EA939NS5IRN7A9G&client_secret=195c152ed93ff4b488d721ae97015485ed80e020af&grant_type=refresh_token";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$output = json_decode($result, true);
$access_token = $output['access_token'];
  
$sAccessToken =$access_token;
$sJSON = json_encode(array(
'First_Name' => $firstname,
'Last_Name' => $lastname,
'Email' => $email,
'Mobile' => $phone,
'Lead_Source' => 'Astral Pipes',
'Description' => $Message,
'Product_Category' => $productCat,
'Enquiry_Type' => 'Become a Dealer',
'Platform' => 'Astral Pipes Website',
'Brand' => 'Astral Pipes',
'Zip_Code' => $pincode,
  ));
  $sJSON = str_replace('{','[{',$sJSON);
  $sJSON = str_replace('}','}]',$sJSON);
  $sJSON = '{"data":' . $sJSON . '}';
 
$sURL = 'https://www.zohoapis.in/crm/v2/Leads';

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://www.zohoapis.in/crm/v2/Leads',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => $sJSON,
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    "Authorization: Zoho-oauthtoken $sAccessToken",
    'cache-control: no-cache',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

echo json_encode(array("response"=>$sResponse)); 
echo json_encode(array("sjson"=>$sJSON)); 
echo json_encode(array("status"=>$sAccessToken));     
             wp_die();   
}
content_copyCOPY