Monday, August 1, 2016

GET THE EMAIL IDs OF ALL MEMBERS THAT HAVE SUBSCRIBED TO MAILCHIMP IN THE LAST N DAYS AND UPDATE OUR DATABSE ACCORDINGLY

GET THE EMAIL IDs OF ALL MEMBERS THAT HAVE SUBSCRIBED TO MAILCHIMP IN THE LAST N DAYS AND UPDATE OUR DATABSE ACCORDINGLY

<?php
require_once("includes/db.php");
$db = new DB();
$database = "XXX";
$list_id = 'XXXXX';


$subscribed_members = getList();
$json_array = getJson($subscribed_members);
$get_status = check_status($json_array);
echo '<pre>'; print_r($get_status);  

function check_status($array_resp){
//echo '<pre>'; print_r($array_resp);
$message[0] = 'Updated on: '.date("F j, Y, g:i a");
$message[1] = "Updates for Subscribed Members ";
$count = count($array_resp['members']);
for($i=0;$i<$count;$i++){
$member = $array_resp['members'][$i];
$email = $member['email_address'];
$status = $member['status'];
$timestamp_opt = $member['timestamp_opt'];

if($status=='subscribed'){
$subscription_status = 1;
$message[] = updateDatabase($email,$subscription_status, $timestamp_opt);
}

}
return $message;
}

function getList(){
global $list_id, $MCAPI;
$username = "XXXX";
$password = "XXXXX";
$api_key = 'XXXXXX-us3';
$dateSince= date('Y-m-d h:i:s',strtotime("-2 days"));  
     
$api = array
(
'login' => $username, 
'key'   => $api_key,
'url'   => 'https://us3.api.mailchimp.com/3.0/lists/'.$list_id.'/members/?count=100&status=subscribed&since_timestamp_opt='.$dateSince
);     
//echo '<pre>'; print_r($api);
    $result = mc_request( $api,'GET','','');     
return $result;   
}
function mc_request( $api, $type, $target, $data = false  ) {   
$ch = curl_init( $api['url'] . $target ); 
curl_setopt( $ch, CURLOPT_HTTPHEADER, array

'Content-Type: application/json', 
'Authorization: ' . $api['login'] . ' ' . $api['key'],

);
curl_setopt($ch, CURLOPT_HEADER, 1);   
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $type );
curl_setopt( $ch, CURLOPT_TIMEOUT, 5 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_USERAGENT, 'YOUR-USER-AGENT' );
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $type );
if( $data )
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $data ) );
$response = curl_exec( $ch );
//echo '<pre>'; var_dump($response);   
//$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close( $ch );
return $response;
}
function getJson($subscribed_members){
//echo $subscribed_members;
$resp = substr(strstr($subscribed_members, '{'), strlen('{'));
$js_result = '{'.$resp;
$jres = json_decode($js_result,true);
//echo '<pre>'; print_r($jres); die('AAA');
return $jres; 
}

function updateDatabase($email,$subscription_status, $timestamp_opt){
global $database, $db;

$sql_check_subscribers = "SELECT * FROM $database.subscribe_email WHERE email = '$email'";
$enabled = $db->getTable($sql_check_subscribers);

if(isset($enabled[0])&&($enabled[0]!='')){ 
$enabled_val = $enabled[0]['enabled'];
if($enabled_val==1)
$message = "Member with email id '$email'  with Opted In Date: '$timestamp_opt' is already Subscribed! ";
else{
$sql_update_subscribers = "UPDATE $database.subscribe_email SET enabled=1
WHERE email = '$email'";
$upd = $db->Command($sql_update_subscribers);
$message = "Updated '$email' with Opted In Date: '$timestamp_opt' in table '$upd' ";
}
}else{
//echo "NOT IN TABLE"; echo '<br>';
$sql_add_subscribers = "INSERT INTO $database.subscribe_email(`enabled`,`typeId`,`email`,`date`) 
VALUES('1','5','$email',NOW())";
$enabled = $db->Query($sql_add_subscribers);
$message = "Added member with email id '$email' as Subscribed! ";
}
return $message;


?>

No comments:

Post a Comment