Feature/TWEB-143 woo order data to sf

This commit is contained in:
Tony Volpe
2024-10-16 23:56:36 +00:00
parent a6fc17dcaa
commit 31eacf670a
6 changed files with 758 additions and 248 deletions

View File

@@ -0,0 +1,108 @@
<?php
/*
Plugin Name: Affiliate Host 'n Post
Description: Handles form submissions and integrates with Salesforce and Five9 APIs.
Version: 1.0
Author: Anthony Volpe
*/
// Function to handle the Salesforce form submission
function postsf($data)
{
$oid = "00D1I000000mJ0Q";
$lead_source = "Web";
$member_status = "Web response";
$campaign_ID = isset($data['campaign_ID']) ? $data['campaign_ID'] : '';
$cleanPOST = array(
'first_name' => stripslashes($data['first-name']),
'last_name' => stripslashes($data['last-name']),
'phone' => stripslashes($data['phone']),
'email' => stripslashes($data['your-email']),
'zip' => stripslashes($data['zip']),
'Campaign_ID' => $campaign_ID,
'oid' => $oid,
'lead_source' => $lead_source,
'Custom_Field_1__c' => stripslashes($data['subid1']),
'Custom_Field_2__c' => stripslashes($data['subid2']),
'Custom_Field_3__c' => stripslashes($data['subid3']),
'Custom_Field_4__c' => stripslashes($data['subid4']),
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://webto.salesforce.com/servlet/servlet.WebToLead");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($cleanPOST));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Added to ensure the response is captured
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error) {
return "Salesforce Error: $error";
} else {
return json_decode($response, true);
}
}
// Function to handle the Five9 form submission
function post59($data) {
$Campaign_ID = '701130000026vNy';
date_default_timezone_set('America/New_York');
$F9Date = date("Y-m-d")."-". date("H:i");
$F9domain = "connect america";
$F9list = isset($data['callback']) ? $data['callback'] : '';
$newphone = preg_replace('/^1|\D/', '', $data['phone']);
$cleanPOST = array(
'first_name' => stripslashes($data['first-name']),
'last_name' => stripslashes($data['last-name']),
'number1' => $newphone,
'F9domain' => $F9domain,
'F9list' => $F9list,
'salesforce_id' => $Campaign_ID,
'Device_6' => '',
'WebDialer_Key' => $F9Date,
'F9key' => $F9Date,
'F9CallASAP' => true
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.five9.com/web2campaign/AddToList");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($cleanPOST));
$response = curl_exec($ch);
if ($response === false) {
$error = curl_error($ch);
curl_close($ch);
return "Five9 Error: $error";
} else {
curl_close($ch);
return json_decode($response, true);
}
}
// REST API endpoint registration
add_action('rest_api_init', function () {
register_rest_route('affiliates/v1', '/form', array(
'methods' => 'POST',
'callback' => 'handle_form_submission',
));
});
// Function to handle the form submission and trigger both postsf() and post59()
function handle_form_submission($request)
{
$params = $request->get_params();
$response1 = postsf($params);
$response2 = post59($params);
return array(
'salesforce_response' => $response1,
'five9_response' => $response2
);
}