A PHP library for working w/ the Mailchimp API (v3.0).
Normal install via Composer.
Call the run
method and pass four params:
- the URI
- the method
- the api key
- the payload
use Travis\Mailchimp;
$hash = md5(strtolower($email));
// make payload
$payload = [
'email_address' => $email,
'status_if_new' => 'subscribed',
#'ip_opt' => $_SERVER['REMOTE_ADDR'],
#'ip_signup' => $_SERVER['REMOTE_ADDR'],
'merge_fields' => [
'FNAME' => $first,
'LNAME' => $last,
],
];
// try to subscribe them...
try
{
$payload['status'] = 'subscribed';
$response = Mailchimp::run('lists/'.$listid.'/members/'.$hash, 'put', $apikey, $payload);
}
// if fails...
catch (\Exception $e)
{
// try to pending them...
try
{
$payload['status'] = 'pending';
$response = Mailchimp::run('lists/'.$listid.'/members/'.$hash, 'put', $apikey, $payload);
}
// if fails...
catch (\Exception $e)
{
// send email
die($e->getMessage());
}
}
The new 3.0
API version they came out with is much more confusing that previous versions. You will need to check the API reference to find out what request types you need to be making (GET, PUT, PATCH, DELETE, EDIT). It's a mess.
The above example is the best way to do a subscribe. This is to prevent a bunch of confirmation emails being sent to people who you are trying to sync but who are already subscribed to your list.