Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mailchimp api 2.0 subscribe through php?

Tags:

php

mailchimp

I need an example of how to subscribe a email address to mailchimp newsletter.

Please check new api link here: https://bitbucket.org/mailchimp/mailchimp-api-php

This is new malichimp api and I am not sure how to use it. :(

For MailChimp 2.0 API, not for 1.3.

Please somebody provide an example on how to subscribe user to mailchimp.

Thank You.

Edit1: Already tried following code, but not working:

$merge_vars = array('MM1'=>$mm1);
$MailChimp = new Mailchimp($apikey);
$result = $MailChimp->call('lists/subscribe', array(
            'id'                => $listid,
            'email'             => array('email'=>$email),
            'merge_vars'        => $merge_vars,
            'double_optin'      => false,
            'update_existing'   => true,
            'replace_interests' => false,
            'send_welcome'      => false,
        ));
    print_r($result);

But not working. Throwing following error: Fatal error: Call to a member function call() on a non-object in subscribe.php on line 22

like image 693
TheGodWings Avatar asked Aug 25 '13 09:08

TheGodWings


4 Answers

Subscribe through php using curl.

$apikey     = 'xxxxxxxxxx'; //your apikey
$listId     = 'xxxxxxxxxx';  // your list id
$endpoint   = "http://yourdatacenter.api.mailchimp.com/3.0/lists/";      // find your datacenter in your apikey( xxxxxxxxxxxxxxxxxxxxxxxx-us13 <= this is your datacenter)
$auth       = base64_encode( 'user:'. $apikey );
$data       = array(
                    'apikey'        => $apikey,
                    'email_address' => 'yourvalid_email_address',
                    'status'        => 'subscribed',
                    'merge_fields'  => array());

$json_data = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint.$listId.'/members/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',
                                            'Authorization: Basic '.$auth));
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
$result = curl_exec($ch);

echo "<pre>";  // Response form mailchimp
print_r(json_decode($result,true));
like image 154
Raju Dudhrejiya Avatar answered Nov 16 '22 03:11

Raju Dudhrejiya


Here is with Try & Catch (example for when dup emails)

header('Content-Type: application/json');
include_once 'Mailchimp.php';

$api_key = '';
$list_id = '';


$email = '[email protected]';
$merge_vars = array();

$Mailchimp = new Mailchimp($api_key);
$Mailchimp_Lists = new Mailchimp_Lists($Mailchimp);

try{
    $subscriber = $Mailchimp_Lists->subscribe(
        $list_id,
        array('email'=>htmlentities($email)),
        $merge_vars,
        false,
        false,
        false,
        false
    );
    echo json_encode(array('status' => !empty($subscriber['leid'])?'submitted':'error'));
} catch(Mailchimp_Error $e){
    echo json_encode(array(
            'status' => 'error',
            'message' => $e->getMessage()
        ));
}

Readmore about subscribe() : https://apidocs.mailchimp.com/api/2.0/lists/subscribe.php

like image 35
l2aelba Avatar answered Nov 16 '22 02:11

l2aelba


Referring to the documentation, this should be like so:

$merge_vars = array('MM1'=>$mm1);
$listid = 'YOURLISTID';
$MailChimp = new Mailchimp($apikey);
$result = $MailChimp->lists->subscribe($listid,
                                        array('email'=>"[email protected]"),
                                        $merge_vars,
                                        false,
                                        true,
                                        false,
                                        false
                                       );
    print_r($result);

Tested and working.

like image 23
Anis Marrouchi Avatar answered Nov 16 '22 02:11

Anis Marrouchi


this might be helpful for some, simple mailchimp subscriber API code sample with php

mailchimp subscriber API code example in PHP

like image 36
saba Avatar answered Nov 16 '22 01:11

saba