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