Skip to content

Instantly share code, notes, and snippets.

@utkarsh2k2
Last active April 23, 2019 16:40
Show Gist options
  • Save utkarsh2k2/1c3ceee289254e1c721c497e26a208e7 to your computer and use it in GitHub Desktop.
Save utkarsh2k2/1c3ceee289254e1c721c497e26a208e7 to your computer and use it in GitHub Desktop.
<?php
// Callback Function For POST REQUEST
function wp_webhook_rest_api_post_response($request) {
$parameters = $request->get_params();
//sample input data
//$parameters = array(0=> array("ParticipationId"=>"E12E5A02-152F-48BB-B907-758C91C2855",
// "ParticipantId"=>"8766979878979879797",
// "PIIDataId"=>"8766979878979879797",
// "InstantWinSlotId"=>"8766979878979879797",
// "PackCode"=>"N3YQW7F7",
// "WinId"=>"hUty7",
// "Email"=>"encoding.test3@some.cc",
// "PrizeName"=>"Hoodie",
// "Tier"=>"2",
// "ConfirmationLink"=>"https://any/test",
// "DrawPeriod"=>"DAILY",
// "ParticipationDate"=>"2018-03-14 17:06:00",
// "IsWinConfirmed"=>"false",
// "Salutation"=>"",
// "FirstName"=>"Николай2",
// "LastName"=>"Иванов2",
// "AddressLine1"=>"",
// "AddressLine2"=>"",
// "ZipCode"=>"",
// "PhoneNumber"=>"687989890",
// "City"=>"",
// "DateOfBirth"=>"",
// "OreojiNumber"=>"",
// "Gender"=>"",
// "Size"=>"",
// "ConfirmationDate"=>""));
$csvFileName = 'csvFile.csv';
$mode = file_exists($csvFileName) ? 'a' : 'w';
$tableHeaders = getHeaders($parameters);
try {
$output = fopen($csvFileName, $mode);
if (!$output) {
throw new Exception('Unable to open file' . $csvFileName);
}
if ($mode == 'w') {
fputcsv($output, $tableHeaders);
}
if (ismulti($parameters)) {
foreach ($parameters as $val) {
$outputstring = getstring($val);
fputcsv($output, $outputstring);
}
} else {
$outputstring = getstring($parameters);
fputcsv($output, $outputstring);
}
//Finally, close the file pointer.
fclose($output);
} catch (Exception $ex) {
throw new Exception('There was an error writing output to the file');
}
$success = array('status'=>'success');
header('Content-Type: application/json');
return json_encode($success);
}
/**
* Returns One dimensional array to be printed in the csv file
* @param array $val
* @return array
*/
function getstring($val) {
$string[] = isset($val['ParticipationId']) ? $val['ParticipationId'] : '';
$string[] = isset($val['ParticipantId']) ? $val['ParticipantId'] : '';
$string[] = isset($val['PIIDataId']) ? $val['PIIDataId'] : '';
$string[] = isset($val['InstantWinSlotId']) ? $val['InstantWinSlotId'] : '';
$string[] = isset($val['PackCode']) ? $val['PackCode'] : '';
$string[] = isset($val['WinId']) ? $val['WinId'] : '';
$string[] = isset($val['Email']) ? $val['Email'] : '';
$string[] = isset($val['PrizeName']) ? $val['PrizeName'] : '';
$string[] = isset($val['Tier']) ? $val['Tier'] : '';
$string[] = isset($val['ConfirmationLink']) ? $val['ConfirmationLink'] : '';
$string[] = isset($val['DrawPeriod']) ? $val['DrawPeriod'] : '';
$string[] = isset($val['ParticipationDate']) ? $val['ParticipationDate'] : '';
$string[] = isset($val['IsWinConfirmed']) ? $val['IsWinConfirmed'] : '';
$string[] = isset($val['Salutation']) ? $val['Salutation'] : '';
$string[] = isset($val['FirstName']) ? $val['FirstName'] : '';
$string[] = isset($val['LastName']) ? $val['LastName'] : '';
$string[] = isset($val['AddressLine1']) ? $val['AddressLine1'] : '';
$string[] = isset($val['AddressLine2']) ? $val['AddressLine2'] : '';
$string[] = isset($val['ZipCode']) ? $val['ZipCode'] : '';
$string[] = isset($val['PhoneNumber']) ? $val['PhoneNumber'] : '';
$string[] = isset($val['City']) ? $val['City'] : '';
$string[] = isset($val['DateOfBirth']) ? $val['DateOfBirth'] : '';
$string[] = isset($val['OreojiNumber']) ? $val['OreojiNumber'] : '';
$string[] = isset($val['Gender']) ? $val['Gender'] : '';
$string[] = isset($val['Size']) ? $val['Size'] : '';
$string[] = isset($val['ConfirmationDate']) ? $val['ConfirmationDate'] : '';
return $string;
}
/**
* Returns table headers as one dimensional array
*
* @param array $params
* @return array
*/
function getHeaders($params) {
if(ismulti($params)){
$headerarray = $params[0];
}else{
$headerarray = $params;
}
$tableHeaders = array_keys($headerarray);
return $tableHeaders;
}
/**
* Returns if it is multi dimensional array or not
* @param type $params
* @return boolean
*/
function ismulti($params){
if(isset($params[0]) && is_array($params[0])){
return true;
}
return false;
}
//wp_webhook_rest_api_post_response($_REQUEST);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment