Skip to content

Instantly share code, notes, and snippets.

@c2prods
Created April 27, 2017 02:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save c2prods/8e4cac2eff4b59141479926e0dd4e057 to your computer and use it in GitHub Desktop.
Save c2prods/8e4cac2eff4b59141479926e0dd4e057 to your computer and use it in GitHub Desktop.
Mailchimp Viral Loop Complete
<?php
if (isset($_POST["email"]) && $_POST["email"] != '') {
include('lib/mailchimp/MailChimp.php');
$MailChimp = new MailChimp('API_KEY');
$email = $_POST["email"];
if (isset($_GET['ref'])) $ref = $_GET['ref'];
$merge = array ( //on crée un tableau qui va contenir tous les merge tags autres que l'email
'SOURCE' => 'landing', //pour tracker de quel formulaire l'utilisateur s'inscrit
'CODE' => md5($email), //le code de parrainage de l'utilisateur qui n'est que le md5 de son email
'REFNBR' => 0 //le nombre de parrainés - 0 au début
);
if (isset($ref)) $merge['REF'] = $ref; //si l'utilisateur a lui même été parrainé, on track qui est son parrain
$MailChimp->post("lists/LIST_ID/members", array( //enfin, on post l'utilisateur dans Mailchimp
'email_address' => $email,
'status' => 'subscribed', //important, sinon il est en pending
'merge_fields' => $merge,
));
if (isset($_GET['r'])) {
$result = $MailChimp->get('lists/LIST_ID/members/'.$ref); //je retrouve le parrain grace au code de referral qui n'est autre que le md5 de son email
$refnbr = $result['merge_fields']['REFNBR']; //je retrouve son nombre de parrainages
$refnbr++; //j'incrémente ce nombre de 1
$MailChimp->patch('lists/LIST_ID/members/'.$_GET['r'], array( //je mets à jour les informations du parrain, toujours grace à son md5
'merge_fields' => array('REFNBR' => $refnbr) //et je changele merge tag REFNBR pour qu'il reflète le nouveau compte
));
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment