aaron4m/zf2-mailchimp

A Mailchimp 1.3 API module for Zend Framework 2.0

dev-master 2013-09-26 23:16 UTC

This package is not auto-updated.

Last update: 2024-04-27 11:38:57 UTC


README

This module is an attempt to create a complete mailchimp API wrapper for Zend Framework 2.0 At the moment, this is loosely based on https://github.com/waynhall/CodeIgniter-Library-for-MailChimp-API-v1.3

*This is very much a work in progress and functionality will be added as I have time and/or need.

Updates

12/04/2013 - Major overhaul of service/mapper architecture. 14/04/2013 - Rewrote the submit mechanism and cleaned up subscriber service.

Contributing

If you want to see this module move along faster, please feel free to pick a section, start coding and submit pull requests! I'm interested in contributions for

  • Unit Tests
  • Add other sections not yet completed
  • Code improvements (I'm still learning, so would appreciate feedback)

Installation

  1. Add the following requirement to your projects composer.json file.
"aaron4m/zf2-mailchimp": "dev-master"
  1. Open up your command line and run
php ./composer.phar update
  1. Copy vendor/aaron4m/zf2-mailchimp/config/mailchimp.local.php.dist to your /config/autoload folder and rename it to mailchimp.local.php
  2. You must add your API key to this file and configure any global settings.

Usage Examples

Subscribe (Single)

$mailchimp = $this->getServiceLocator()->get('subscriber');

$mailchimp->email('me@here.com.au')
  ->listId('29bc73c393')
  ->emailType('html')
  ->subscribe();

Subscribe (Bulk)

$mailchimp = $this->getServiceLocator()->get('subscriber');

$mailchimp->listId('12345')
  ->batch(array(
    array('EMAIL'=>'me@here.com', 'EMAIL_TYPE'=>'html', 'FNAME'=>'Aaron'),
    array('EMAIL'=>'me2@here.com', 'EMAIL_TYPE'=>'html', 'FNAME'=>'Bill'),
  ))
  ->subscribe();

Unsubscribe (Single)

$mailchimp = $this->getServiceLocator()->get('subscriber');

$mailchimp->email('me@here.com.au')
    ->listId('29bc73c393')
    ->unsubscribe();

Unsubscribe (Bulk)

$mailchimp = $this->getServiceLocator()->get('subscriber');

$subscribe->listId('29bc73c393')
  ->batch(array('me@here.com', 'me2@here.com'))
  ->unsubscribe();

Update (Single)

$mailchimp = $this->getServiceLocator()->get('subscriber');

$mailchimp->listId('12345')
  ->email('me@here.com')
  ->mergeVars(array(
    array('FNAME'=>'Aaron'),
  ))
  ->update();

Update (Bulk)

$mailchimp = $this->getServiceLocator()->get('subscriber');

$mailchimp->listId('12345')
  ->batch(array(
    array('EMAIL'=>'me@here.com', 'FNAME'=>'Aaron'),
    array('EMAIL'=>'me2@here.com', 'FNAME'=>'Billy'),
  ))
  ->update();

Get Member Info (Single)

  • You can return this as an array or a subscriber entity
$mailchimp = $this->getServiceLocator()->get('subscriber');

$subscriberDetails = $mailchimp->email('aaron@4mation.com.au')
  ->listId('29bc73c393')
  ->get();