Class for basic Mailchimp interaction, requires DCurl and Validator
<?php
require_once __DIR__.'/DCurl.php';
require_once __DIR__.'/Validator.php';
class Mailchimp {
private $apiKey;
private $server;
private $root;
public function __construct($apiKey) {
$this->apiKey = $apiKey;
$this->server = end(explode('-', $this->apiKey));
$this->root = 'https://'.$this->server.'.api.mailchimp.com/3.0';
}
private function makeRequest($endpoint, $data, $method = 'GET') {
$url = $this->root.$endpoint;
$client = new DCurl($url, $method, $data);
$client->setPassword($this->apiKey)
->run();
return json_decode($client->getOutput());
}
public function registerAddress($list, $email, $name = '', $surname = '', $merge = []) {
$merge_fields = [
'FNAME' => $name,
'LNAME' => $surname,
];
$merge_fields = array_merge($merge_fields, $merge);
$data = [
'email_address' => $email,
'status' => 'subscribed',
'merge_fields' => $merge_fields,
];
return $this->makeRequest('/lists/'.$list.'/members', $data, 'POST');
}
}