Zend Framework 3 / Laminas Mailchimp api V3 Integration Module
This module integrates with the mailchimp api.
Table of contents- Installation
- Post installation
- Usage
Installation Return to top
With Composer Return to top
-
In the root of your application enter:
$ composer require krytenuk/mailchimp
Post installation Return to top
-
Enable it in your `application.config.php` or `modules.config.php` file.
For ZF2 add to your `application.config.php` file.
<?php
return array(
'modules' => array(
// ...
'FwsMailchimp',
),
// ...
);
For ZF3 add to your `modules.config.php` file.
<?php
return [
'FwsMailchimp',
// ...
]; - Copy `./vendor/krytenuk/mailchimp/config/fwsmailchimp.local.php.dist` to `./config/autoload/fwsmailchimp.local.php`.
-
In `./config/autoload/fwsmailchimp.local.php` change the following.
<?php
Your Mailchimp api key can be created/found in your Mailchimp admin area, to login goto https://login.mailchimp.com/. Once logged in goto Account (top right) and then select Extras -> API Keys.
return array(
'fwsMailchimp' => array(
'apikey' => 'your mailchimp api key here',
'listId' => 'your mailchimp list id here',
),
);
Your list id can be found in your members list. Goto Lists and select the list you wish to use then goto Settings -> List Name and Defaults.
Usage Return to top
As of version 0.2.0 FwsMailchimp supports the manipulation of members (subscribers to a mailing list) and interest categories (groups).
FwsMailchimp uses entities to send and receive data to and from the mailchimp api and an array collection to hold multiple entities.
Member Manipulation Return to top
To use the member functions you must retrieve the "FwsMailchimp\Members" class from the service manager.
<?php
use FwsMailchimp\Members;
// ...
$membersClass = $serviceManager->get(Members::class); // ideally should be injected from your factory
"FwsMailchimp\Members" has the following public methods:
listMembers() | Gets all members in list. |
---|---|
getMember($emailAddress) | Gets a member by email address. |
add(MembersEntity $member) | Adds a new member to the list. |
subscribe($emailAddress) | Sets member status to "subscribed", member will receive mailchimp emails. |
unsubscribe($emailAddress) | Sets member status to "unsubscribed", member will not receive mailchimp emails. |
remove($emailAddress) archive($emailAddress) |
Soft deletes a member from the list. |
removePermanent($emailAddress) | Permanently delete a member from the list. |
update(MembersEntity $member) | Changes members details. |
setListId($listId) | Changes the list id from that set in the config |
getClientIpAddress() | Gets the members ip address |
Listing all members Return to top
To retrieve all the members in a list use:
<?php
// ...
$members = $membersClass->listMembers();
// ...
This returns either a "FwsMailchimp\Collections\ArrayCollection" of "FwsMailchimp\Entities\Members" entities on success or null if no members found. This function also returns null if an error occurred.
The "FwsMailchimp\Collections\ArrayCollection" implements the PHP "Iterator" interface and as such can be manipulated as a PHP array using functions such as foreach().
To retrieve the members use something like:
<?php
// ...
if ($members->isEmpty() === false) {
foreach ($members as $memberEntity) {
// do something with the member entity
}
}
// ...
Get a member by email address Return to top
To retrieve an individual member use:
<?php
// ...
$memberEntity = $membersClass->getMember($emailAddress);
// ...
This returns a "FwsMailchimp\Entities\Members" entity on success or null on no member found. This function also returns null if an error occurred.
Add a new member to the list Return to top
To add a new member to the list you must first create a "FwsMailchimp\Entities\Members" entity:
<?php
use FwsMailchimp\Entities\Members as MembersEntity;
// ...
$memberEntity = new MembersEntity();
$memberEntity->setEmailAddress('member@emailaddress')
->setEmailType('html')
->setStatus('subscribed')
->setMergeFields(array(
'FNAME' => 'Firstname',
'LNAME' => 'Lastname',
))
->setVip(true);
$add = $membersClass->add($memberEntity);
// ...
This function returns true on success or false on failure, see handling errors.
You can also "subscribe" the member using the "setStatus()" in the entity, the code above shows this. "setMergeFields()" function in the entity sets the merge fields as set in your mailchimp list, to set the list merge fields goto your mailchimp list and select Settings -> List fields and *|MERGE|* tags.
Subscribe a member to the list Return to top
Subscribing a member to the list simply changes their status to "subscribed", the member must already exist on the list for this to work, see add a member to the list:
<?php
// ...
$member = $membersClass->subscribe($emailAddress);
// ...
This function returns a "FwsMailchimp\Entities\Members" entity on success or null on failure, see handling errors.
Unsubscribe a member from the list Return to top
Unsubscribing a member from the list simply changes their status to "unsubscribed", it does not delete the member. The member must already exist on the list for this to work, see add a member to the list:
<?php
// ...
$member = $membersClass->unsubscribe($emailAddress);
// ...
This function returns a "FwsMailchimp\Entities\Members" entity on success or null on failure, see handling errors.
Soft delete a member from the list Return to top
To soft delete (archive) a member from the list simply use:
<?php
or
// ...
$success = $membersClass->remove($emailAddress);
// ...
<?php
// ...
$success = $membersClass->archive($emailAddress);
// ...
This function returns true on success or false on failure, see handling errors.
Permanently delete a member from the list Return to top
Warning: Members that are permanently deleted cannot be added again through the Mailchimp API
To permanently delete a member from the list simply use:
<?php
// ...
$success = $membersClass->removePerminant($emailAddress);
// ...
This function returns true on success or false on failure, see handling errors.
Updating a members details Return to top
To update a members details you must first retrieve a member:
<?php
// ...
$memberEntity = $membersClass->getMember($emailAddress);
// change the member entity as required
$success = $membersClass->update($memberEntity);
// ...
This function returns true on success or false on failure, see handling errors.
Get the list id Return to top
To get the list id simply use:
<?php
// ...
$listId = $membersClass->getListId();
// ...
This function returns a string
Set/Change the list id Return to top
To change the list id set in the config simply use:
<?php
// ...
$membersClass->setListId($listId);
// ...
This function accepts a string and returns the "FwsMailchimp\Members" class.
Get the members ip address Return to top
This function is useful in a signup form as the members ip address is logged by the server.
This function is not useful however, if used in an admin environment as it will contain the admins id and not the member.
To get the members ip address:
<?php
// ...
$ipAddress = $membersClass->getClientIpAddress();
// ...
This function returns a string
Interest manipulation Return to top
To use the interest functions you must retrieve the "FwsMailchimp\Interests" class from the service manager.
<?php
use FwsMailchimp\Interests;
// ...
$interestsClass = $serviceManager->get(Interests::class); // ideally should be injected from your factory
This class pre-loads the interest categories.
"FwsMailchimp\Interests" has the following public methods:
refresh() | Reloads the interests list. |
---|---|
listInterestCategories() | Lists all the interest categories |
getInterestCategory($interestCategoryId) | Gets interest category by category id |
findInterestCategory($interestId) | Gets an interest category by interest id |
listCategoryInterests($interestCategoryId) | Lists all interests in specified category |
getInterest($interestId) | Gets the specified interest |
setListId($listId) | Changes the list id from that set in the config |
Refresh/reload the interest categories list Return to top
To refresh the list simply use:
<?php
// ...
$interestsClass->refresh();
// ...
This function returns true on success or false on failure, see handling errors.
List all the interest categories Return to top
To get a list of all the interest categories simply use:
<?php
// ...
$interestCategories = $interestsClass->listInterestCategories();
// ...
This returns either a "FwsMailchimp\Collections\ArrayCollection" of "FwsMailchimp\Entities\InterestCategories" entities on success or null if no interest categories exist in list.
The "FwsMailchimp\Collections\ArrayCollection" implements the PHP "Iterator" interface and as such can be manipulated as a PHP array using functions such as foreach().
To retrieve the interest categories and the interests use something like:
<?php
// ...
if ($interestCategories->isEmpty() === false) {
foreach ($interestCategories as $interestCategoryEntity) {
// do something with the interest category entity
$interests = $interestCategoryEntity->getInterests();
if ($interests->isEmpty() === false) {
foreach ($interests as $interestEntity) {
// do something with the interest entity
}
}
}
}
// ...
Get an interest category by interest category id Return to top
To get a specific interest category by interest category id simply use:
<?php
// ...
$interestCategoryEntity = $interestsClass->getInterestCategory($interestCategoryId);
// ...
This returns either a "FwsMailchimp\Entities\InterestCategories" entity on sucess or null if no interest category found.
To retrieve the interests use something like:
<?php
// ...
if ($interestCategoryEntity->hasInterests()) {
foreach ($interestCategoryEntity->getInterests() as $interestEntity) {
// do something with the interest entity
}
}
// ...
Get an interest category by interest id Return to top
To get a specific interest category by interest id simply use:
<?php
// ...
$interestCategoryEntity = $interestsClass->findInterestCategory($interestId);
// ...
This returns either a "FwsMailchimp\Entities\InterestCategories" entity on success or null if no interest category found.
To retrieve the interests use something like:
<?php
// ...
if ($interestCategoryEntity->hasInterests()) {
foreach ($interestCategoryEntity->getInterests() as $interestEntity) {
// do something with the interest entity
}
}
// ...
List all interests in specified category Return to top
To get a categories interests simply use:
<?php
// ...
$interests = $interestsClass->listCategoryInterests($interestCategoryId);
// ...
This returns either a "FwsMailchimp\Collections\ArrayCollection" of "FwsMailchimp\Entities\Interests" entities on sucess or null if no interests found.
To retrieve the interests use something like:
<?php
// ...
if ($interests->isEmpty() === false) {
foreach ($interests as $interestEntity) {
// do something with the interest entity
}
}
// ...
Get the specified interest Return to top
To get specific interest simply use:
<?php
// ...
$interestEntity = $interestsClass->getInterest($interestId);
// ...
This returns either a "FwsMailchimp\Entities\Interests" entity on sucess or null if no interest found.
Get the list id Return to top
To get the list id simply use:
<?php
// ...
$listId = $interestsClass->getListId();
// ...
This function returns a string
Set/Change the list id Return to top
To change the list id set in the config simply use::
<?php
// ...
$interestsClass->setListId($listId);
// ...
This function accepts a string and returns the "FwsMailchimp\Interests" class.
Entities Return to top
As mentioned earlier all data recieved from mailchimp is hydrated into entities. This creates a standardised, object oriented data structure.
An entity is a person, place, thing or concept about which data can be collected. Each entity is made up of a number of attributes which represent that entity.
Entities are classes of getters and setters to retrieve and set data.
Members entity Return to top
The "FwsMailchimp\Entities\Members" entity holds the members data to be processed.
To get a members entity you must either get an existing mailchimp member or create a new one, to get an existing member see "Get a member by email address"
To create a new member entity use:
<?php
// ...
use FwsMailchimp\Entities\Members as MemberEntity;
// ...
$memberEntity = new MemberEntity();
// ...
"FwsMailchimp\Entities\Members" entity has the following public methods:
Getters
getId() | Gets the members id |
---|---|
getEmailAddress() | Gets the members email address |
getMergeFields() | Gets the merge field data for the member |
getUniqueEmailId() | Gets the identifier for the address across all of MailChimp |
getEmailType() | Gets the email type |
getStatus() | Gets the members subscribe status |
getInterestCategories() | Gets the member interests sorted into categories |
getInterests() | Gets the member interests as array |
getStats() | Gets open and click rates for member |
getIpSignup() | Gets the IP address the member signed up from |
getTimestampSignup() | Gets the date and time the member signed up for the list |
getIpOpt() | Gets the IP address the member used to confirm their opt-in status |
getTimestampOpt() | Gets the date and time the member confirmed their opt-in status |
getMemberRating() | Gets the member rating |
getLastChanged() | Gets the date and time the members info was last changed |
getLanguage() | Gets the member language |
isVip() | Determine if the member is VIP |
getEmailClient() | Gets the members email client |
getLocation() | Gets the members location |
getListId() | Gets the list id to which member is registered |
getValidSubscribeStatus() | Get all valid subscribe status |
getValidEmailTypes() | Gets a list of all valid email types |
toArray() | Returns member object as an array compatible with mailchimp api |
Setters
setEmailAddress($emailAddress) | Sets the members email address |
---|---|
setMergeFields(Array $mergeFields) | Sets the merge fields |
setEmailType($emailType) | Sets the members email type |
setStatus($status) | Sets the members subscribed status |
setInterested($interestId) | Sets a members enthusiasm in an interest |
unsetInterested($interestId) | Removes a members enthusiasm in an interest |
setIpSignup($ipSignup) | Sets the IP address the member signed up from |
setTimestampSignup($timestampSignup) | Sets the date and time the member signed up for the list |
setIpOpt($ipOpt) | Sets the IP address the member used to confirm their opt-in status |
setTimestampOpt($timestampOpt) | Sets the date and time the subscribe confirmed their opt-in status |
setLanguage($language) | Sets the members language |
setVip($vip) | Sets the members VIP status |
setLocation(LocationEntity $location) | Sets the members location |
Get the members id Return to top
<?php
// ...
$id = $memberEntity->getId();
// ...
This function returns a string.
Get the members email address Return to top
<?php
// ...
$mailAddress = $memberEntity->getEmailAddress();
// ...
This function returns a string.
Get the members merge fields Return to top
<?php
// ...
$mergeFields = $memberEntity->getMergeFields();
// ...
This function returns as array.
<?php
array(
'MERGEFIELDNAME' => 'value',
);
Get the members unique email id Return to top
<?php
// ...
$uniqueEmailId = $memberEntity->getUniqueEmailId();
// ...
This function returns a string.
Get the members email type Return to top
<?php
// ...
$emailType = $memberEntity->getEmailType();
// ...
This function returns a string, "html" or "text".
Get the members subscribe status Return to top
<?php
// ...
$status = $memberEntity->getStatus();
// ...
This function returns a string, "subscribed", "unsubscribed", "cleaned", "pending" or "transactional".
Get the members interest categories Return to top
<?php
// ...
$interestCategories = $memberEntity->getInterestCategories();
// ...
This function returns the "FwsMailchimp\Collections\ArrayCollection" class of "FwsMailchimp\Entities\InterestCategories" entities.
To retrieve the interest categories and the interests use something like:
<?php
// ...
if ($interestCategories->isEmpty() === false) {
foreach ($interestCategories as $interestCategoryEntity) {
// do something with the interest category entity
if ($interestCategoryEntity->hasInterests()) {
foreach ($interestCategoryEntity->getInterests() as $interestEntity) {
// do something with the interest entity
}
}
}
}
// ...
Get the members interests Return to top
<?php
// ...
$interests = $memberEntity->getInterests();
// ...
This function returns an array.
<?php
array(
'interestid' => true/false, // true or false depending on if the member is enthusiastic about the interest
);
Get open and click rates for member Return to top
<?php
// ...
$stats = $memberEntity->getStats();
// ...
This function returns a "FwsMailchimp\Entities\MemberStats" entity.
Get the IP address the member signed up from Return to top
<?php
// ...
$ipSignup = $memberEntity->getIpSignup();
// ...
This function returns a string.
Get the date and time member signed up Return to top
<?php
// ...
$timestampSetup = $memberEntity->getTimestampSignup();
// ...
This function returns a PHP "DateTime" class or null.
Get the IP address the member used to confirm their opt-in status Return to top
<?php
// ...
$ipOpt = $memberEntity->getIpOpt();
// ...
This function returns a string.
Get the date and time the member confirmed their opt-in status Return to top
<?php
// ...
$timestampOpt = $memberEntity->getTimestampOpt();
// ...
This function returns a PHP "DateTime" class or null.
Get the member rating Return to top
<?php
// ...
$rating = $memberEntity->getMemberRating();
// ...
This function returns a integer from 1 to 5.
Get the date and time the members info was last changed Return to top
<?php
// ...
$lastChanged = $memberEntity->getLastChanged();
// ...
This function returns a PHP "DateTime" class or null.
This function returns a string.
Get the members language if set Return to top
<?php
// ...
$language = $memberEntity->getLanguage();
// ...
This function returns a "FwsMailchimp\Entities\Languages" entity.
Determine if the member is VIP Return to top
<?php
// ...
$vip = $memberEntity->isVip();
// ...
This function returns true or false.
Gets the members email client if set Return to top
<?php
// ...
$emailClient = $memberEntity->getEmailClient();
// ...
This function returns a string.
Get the members location Return to top
<?php
// ...
$location = $memberEntity->getLocation();
// ...
This function returns a "FwsMailchimp\Entities\Locations" entity.
Get the list id to which member is registered Return to top
<?php
// ...
$listId = $memberEntity->getListId();
// ...
This function returns a string.
Get all the valid subscribe states Return to top
<?php
// ...
$validSubscribeStates = $memberEntity->getValidSubscribeStates();
// ...
This function returns an array of valid subscribe states, see getStatus() and setStatus()
Get all the valid email types Return to top
<?php
// ...
$validEmailTypes = $memberEntity->getValidEmailTypes();
// ...
This function returns as array of valid subscribe states, see getEmailType() and setEmailType()
Get the members details as an array for use in the mailchimp api Return to top
<?php
// ...
$memberArray = $memberEntity->toArray();
// ...
This function returns an array.
Set the members email address Return to top
<?php
// ...
$memberEntity->setEmailAddress($emailAddress);
// ...
This function accepts a string.
Set the merge fields Return to top
<?php
// ...
$memberEntity->setMergeFields(Array $mergeFields);
// ...
This function accepts a array.
<?php
// ...
$memberEntity->setMergeFields(array(
'MERGEFIELD1' => 'value1',
'MERGEFIELD2' => 'value2',
// ...
));
// ...
Set the members email type Return to top
<?php
// ...
$memberEntity->setEmailType($emailType);
// ...
This function accepts a string, "html" or "text".
This function can also throw a "IncorrectTypeException" if an incorrect type is set.
Set the members subscribe status Return to top
<?php
// ...
$memberEntity->setStatus($status);
// ...
This function accepts a string, "subscribed", "unsubscribed", "cleaned", "pending" or "transactional".
This function can also throw a "IncorrectTypeException" if an incorrect status is set.
Set the members enthusiasm for an interest Return to top
<?php
// ...
$memberEntity->setInterested($interestId);
// ...
This function accepts a string. This must be a valid interest id for the list, see Interest manipulation
Unset the members enthusiasm for an interest Return to top
<?php
// ...
$memberEntity->unsetInterested($interestId);
// ...
This function accepts a string. This must be a valid interest id for the list, see Interest manipulation
Set the IP address the member signed up from Return to top
<?php
// ...
$memberEntity->setIpSignup($ipSignup);
// ...
This function accepts a string.
Set the date and time the member signed up for the list Return to top
<?php
// ...
$memberEntity->setTimestampSignup($timestampSignup);
// ...
This function accepts either a PHP "DateTime" class or a string that can be converted to a "DateTime" class.
This function can also throw a "IncorrectTypeException" if an incorrect variable type is set.
Set the IP address the member used to confirm their opt-in status Return to top
<?php
// ...
$memberEntity->setIpOpt($ipOpt);
// ...
This function accepts a string.
Set the date and time the subscribe confirmed their opt-in status Return to top
<?php
// ...
$memberEntity->setTimestampOpt($timestampOpt);
// ...
This function accepts either a PHP "DateTime" class or a string that can be converted to a "DateTime" class.
This function can also throw a "IncorrectTypeException" if an incorrect variable type is set.
Set the members language Return to top
<?php
// ...
$memberEntity->setLanguage($language);
// ...
This function accepts a "FwsMailchimp\Entities\Languages" entity.
Set the members VIP status Return to top
<?php
// ...
$memberEntity->setVip($vip);
// ...
This function accepts a boolean value.
Sets the members location Return to top
<?php
// ...
$memberEntity->setLocation($location);
// ...
This function accepts a "FwsMailchimp\Entities\Locations" entity.
Languages entity Return to top
The "FwsMailchimp\Entities\Languages" entity holds the members language data to be processed.
To get a language entity you can simply retrieve it from a members entity:
<?php
To get a members entity see "Members entity"
// ...
$languageEntity = $memberEntity->getLanguage();
// ...
"FwsMailchimp\Entities\Languages" entity has the following public methods:
Getters
getId() | Get the members language id |
---|---|
getLanguage() | Get the members language |
getValidLanguageCodes() | Get all the valid language codes |
toArray() | Get the members language as an array |
Setters
setId() | Set the members language id |
---|
Get the members language id if set Return to top
<?php
// ...
$id = $languageEntity->getId();
// ...
This function returns a string, the mailchimp language code
Get the members language if set Return to top
<?php
// ...
$language = $languageEntity->getLanguage();
// ...
This function returns a string
Get all the valid language codes Return to top
<?php
// ...
$validLanguageCodes = $languageEntity->getValidLanguageCodes();
// ...
This function returns an array of valid language codes, see getLanguage(), getId() and setId()
Get the members language as an array Return to top
<?php
// ...
$memberArray = $languageEntity->toArray();
// ...
This function returns an array.
Set the members language id Return to top
<?php
// ...
$languageEntity->setId($languageId);
// ...
This function accepts a string, see getValidLanguageCodes()
Member Stats entity Return to top
The "FwsMailchimp\Entities\MemberStats" entity holds the members open and click rate statistics, this entity is read only.
To get a member stats entity you can simply retrieve it from a members entity:
<?php
To get a members entity see "Members entity"
// ...
$memberStatsEntity = $memberEntity->getStats();
// ...
"FwsMailchimp\Entities\MemberStats" entity has the following public methods:
Getters
getAvgOpenRate() | Gets the members average open rate |
---|---|
getAvgClickRate() | Get the members average click-through rate |
Get the members average open rate Return to top
<?php
// ...
$language = $memberStatsEntity->getAvgOpenRate();
// ...
This function returns a number
Get the members average click-through rate Return to top
<?php
// ...
$language = $memberStatsEntity->getAvgClickRate();
// ...
This function returns a number
Locations entity Return to top
The "FwsMailchimp\Entities\Locations" entity holds the members location data.
To get a location entity you can simply retrieve it from a members entity:
<?php
To get a members entity see "Members entity"
// ...
$locationEntity = $memberEntity->getLocation();
// ...
"FwsMailchimp\Entities\Locations" entity has the following public methods:
Getters
getLatitude() | Gets the location latitude |
---|---|
getLongitude() | Gets the location longitude |
getGmtoff() | Gets the time difference in hours from GMT |
getDstoff() | Gets the offset for timezones where daylight saving time is observed |
getCountryCode() | Gets the unique code for the location country |
getTimezone() | Gets the timezone for the location |
toArray() | Returns location object as an array compatible with mailchimp api |
Setters
setLatitude($latitude) | Sets the location latitude |
---|---|
setLongitude($longitude) | Sets the location longitude |
Get the location latitude Return to top
<?php
// ...
$latitude = $locationEntity->getLatitude();
// ...
This function returns a number
Get the location longitude Return to top
<?php
// ...
$longitude = $locationEntity->getLongitude();
// ...
This function returns a number
Get the time difference in hours from GMT Return to top
<?php
// ...
$gmtoff = $locationEntity->getGmtoff();
// ...
This function returns a integer
Get the offset for timezones where daylight saving time is observed Return to top
<?php
// ...
$dstoff = $locationEntity->getDstoff();
// ...
This function returns a integer
Get the unique code for the location country Return to top
<?php
// ...
$countryCode = $locationEntity->getCountryCode();
// ...
This function returns a string
Get the timezone for the location Return to top
<?php
// ...
$timezone = $locationEntity->getTimezone();
// ...
This function returns a string
Get location object as an array compatible with mailchimp api Return to top
<?php
// ...
$locationArray = $locationEntity->toArray();
// ...
This function returns a array
Set the location latitude Return to top
<?php
// ...
$locationEntity->setLatitude($latitude);
// ...
This function accepts a number
Set the location longitude Return to top
<?php
// ...
$locationEntity->setLongitude($longitude);
// ...
This function accepts a number
Interest Categories entity Return to top
The "FwsMailchimp\Entities\InterestCategories" entity holds the interest category data to be processed, this entity is read only.
To get an interest category entity you must get an existing mailchimp interest category, see "List all the interest categories", "Get an interest category by interest category id" and "Get an interest category by interest id"
"FwsMailchimp\Entities\InterestCategories" entity has the following public methods:
Getters
getId() | Gets the category id |
---|---|
getListId() | Gets the mailchimp list id |
getTitle() | Gets the category's title |
getDisplayOrder() | Gets the category's display order |
getType() | Determines how this category's interests appear on mailchimp signup forms |
getInterests() | Gets the category's interests |
getValidTypes() | Gets all the valid category types |
toArray() | Returns interest category object as an array compatible with mailchimp api |
Get the category id Return to top
<?php
// ...
$categoryId = $interestCategoryEntity->getId();
// ...
This function returns a string
Get the mailchimp list id Return to top
<?php
// ...
$listId = $interestCategoryEntity->getListId();
// ...
This function returns a string, see "Post installation" and "Set/Change the list id"
Get the category's title Return to top
<?php
// ...
$categoryTitle = $interestCategoryEntity->getTitle();
// ...
This function returns a string
Get the category's display order Return to top
<?php
// ...
$categoryDisplayOrder = $interestCategoryEntity->getDisplayOrder();
// ...
This function returns a integer
Determines how this category's interests appear on mailchimp signup forms Return to top
<?php
// ...
$categoryType = $interestCategoryEntity->getType();
// ...
This function returns a string
Get the category's interests Return to top
<?php
// ...
$interests = $interestCategoryEntity->getInterests();
// ...
This function returns an "FwsMailchimp\Collections\ArrayCollection" of "FwsMailchimp\Entities\Interests" entities
To retrieve the interests use something like:
<?php
// ...
if ($interests->isEmpty() === false) {
foreach ($interests as $interestEntity) {
// do something with the interest entity
}
}
// ...
Get all the valid category types Return to top
<?php
// ...
$validTypes = $interestCategoryEntity->getValidTypes();
// ...
This function returns an array of valid category types, see getType()
Get the interest category details as an array for use in the mailchimp api Return to top
<?php
// ...
$categoryType = $interestCategoryEntity->toArray();
// ...
This function returns an array
Interests entity Return to top
The "FwsMailchimp\Entities\Interests" entity holds the interests data to be processed, this entity is read only.
To get an interest entity you must get an existing mailchimp interest, see "List all the interest categories", "Get an interest category by interest category id", "Get an interest category by interest id", "List all interests in specified category" and "Get the specified interest"
"FwsMailchimp\Entities\Interests" entity has the following public methods:
Getters
getId() | Gets the interest id |
---|---|
getCategoryId() | Get the interest category id |
getListId() | Gets the mailchimp list id |
getName() | Get the interest's name |
getSubscriberCount() | Get the interest's subscriber count |
getDisplayOrder() | Get the interest's display order |
toArray() | Returns interest category object as an array compatible with mailchimp api |
Get the interest id Return to top
<?php
// ...
$interestId = $interestEntity->getId();
// ...
This function returns a string
Get the interest category id Return to top
<?php
// ...
$categoryId = $interestEntity->getCategoryId();
// ...
This function returns a string
Get the mailchimp list id Return to top
<?php
// ...
$listId = $interestEntity->getListId();
// ...
This function returns a string, see "Post installation" and "Set/Change the list id"
Get the interest's name Return to top
<?php
// ...
$name = $interestEntity->getName();
// ...
This function returns a string
Get the interest's subscriber count Return to top
<?php
// ...
$subscriberCount = $interestEntity->getSubscriberCount();
// ...
This function returns a integer
Get the interest's display order Return to top
<?php
// ...
$displayOrder = $interestEntity->getDisplayOrder();
// ...
This function returns a integer
Get the interest details as an array for use in the mailchimp api Return to top
<?php
// ...
$interestsArray = $interestEntity->toArray();
// ...
This function returns an array
Array Collections Return to top
The "FwsMailchimp\Collections\ArrayCollection" implements the PHP "Iterator" interface and as such can be manipulated as a PHP array using functions such as foreach().
To create a new array collection use:
<?php
// ...
use FwsMailchimp\Collections\ArrayCollection;
// ...
$collection = new ArrayCollection();
// ...
The "FwsMailchimp\Collections\ArrayCollection" is designed to handle "FwsMailchimp\Entities".
"FwsMailchimp\Collections\ArrayCollection" entity has the following public methods:
add() | Add entity to collection |
---|---|
set() | Set an entity in collection |
get() | Get an entity from a collection by it's id |
remove() | Remove entity from collection by it's key |
removeElement() | Remove entity from collection |
count() | Count entities in a collection |
isEmpty() | Check if collection is empty |
key() | Return key of current collection element |
next() | Increase key to next element in collection |
current() | Return current element in collection |
rewind() | Reset key in collection to first element |
valid() | Check current element is a valid entity |
toArray() | Convert collection to an array |
Adding an entity to a collection Return to top
<?php
// ...
$collection->add($entity);
// ...
This function returns the "FwsMailchimp\Collections\ArrayCollection" object
Setting/overwriting an entity in a collection Return to top
<?php
// ...
$collection->set($key, $entity);
// ...
This function returns the "FwsMailchimp\Collections\ArrayCollection" object
Get an entity from a collection by it's id Return to top
<?php
// ...
$entity = $collection->get($id);
// ...
This function returns an entity implementing "FwsMailchimp\Entities\EntityInterface"
Removing an entity from a collection by it's key Return to top
<?php
// ...
$success = $collection->remove($key);
// ...
This function returns true or false
Removing an entity from a collection Return to top
<?php
// ...
$success = $collection->removeElement($entity);
// ...
This function returns true or false
Counting entities in a collection Return to top
<?php
// ...
$count = $collection->count();
// ...
This function returns a integer
Determine if a collection is empty Return to top
<?php
// ...
$empty = $collection->isEmpty();
// ...
This function returns a true or false
Return key of current collection element Return to top
<?php
// ...
$key = $collection->key();
// ...
This function returns an integer
Increase key to next element in collection Return to top
<?php
// ...
$collection->next();
// ...
This function does not return a value
Return current element in collection Return to top
<?php
// ...
$entity = $collection->current();
// ...
This function returns an entity implementing "FwsMailchimp\Entities\EntityInterface"
Reset key in collection to first element Return to top
<?php
// ...
$collection->rewind();
// ...
This function does not return a value
Check current element is a valid entity Return to top
<?php
// ...
$valid = $collection->valid();
// ...
This function returns true or false
Return entities as an array Return to top
<?php
// ...
$entitiesArray = $collection->toArray();
// ...
This function returns an array
Handling Errors Return to top
Handling errors in FwsMailchimp is fairly straight forward, this section applies to:
If an error occurs it is logged by "FwsMailchimp".
Determine if error(s) occurred Return to top
<?php
// ...
$errors = $fwsMailchimpObject->hasErrors();
// ...
This function returns true or false
Retrieving the error log Return to top
<?php
// ...
$errorsArray = $fwsMailchimpObject->getErrors();
// ...
This function returns an array
Clearing the error log Return to top
<?php
// ...
$fwsMailchimpObject->clearErrors();
// ...
This function returns the calling object
Working Examples Return to top
Below are a few examples of how to use "FwsMailchimp"
Creating a new member Return to top
<?php
use FwsMailchimp\Members;
use FwsMailchimp\Entities\Members as MemberEntity;
use DateTime;
// ...
$membersClass = $serviceManager->get(Members::class); // ideally should be injected from your factory
// ...
$memberIpAddress = $membersClass->getClientIpAddress();
$signupDate = new DateTime('now');
$memberEntity = new MembersEntity();
$memberEntity->setEmailAddress('member@emailaddress')
->setEmailType('html')
->setStatus('subscribed')
->setMergeFields(array(
'FNAME' => 'Firstname',
'LNAME' => 'Lastname',
))
->setInterested('interest 1 id')
->setInterested('interest 2 id')
->setIpSignup($memberIpAddress)
->setTimestampSignup($signupDate);
$add = $membersClass->add($memberEntity);
// ...
There are more setters in the "FwsMailchimp\Entities\Members" entity
Getting a members interest categories and interests Return to top
<?php
use FwsMailchimp\Members;
// ...
$membersClass = $serviceManager->get(Members::class); // ideally should be injected from your factory
// ...
$memberEntity = $membersClass->getMember('member@emailaddress');
$interestCategories = $memberEntity->getInterests();
if ($interestCategories->isEmpty() === false) {
foreach ($interestCategories as $interestCategoryEntity) {
// do something with the interest category entity
$interests = $interestCategoryEntity->getInterests();
if ($interests->isEmpty() === false) {
foreach ($interests as $interestEntity) {
// do something with the interest entity
}
}
}
}
// ...