PHP
Need help with SendyPHP?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
JacobBennett

Description

A PHP class built to interface with the Sendy API

130 Stars 36 Forks MIT License 82 Commits 6 Opened issues

Services available

Need anything else?

SendyPHP

Latest Version on Packagist Total Downloads

A PHP class built to interface with the Sendy API (http://sendy.co)

Installation

Using Composer

Begin by installing this package through Composer. Edit your project's

composer.json
file to require
jacobbennett/sendyphp
.
"require": {
    "jacobbennett/sendyphp": "1.3.*"
}

Next, update Composer from the Terminal:

composer update

Non-Composer Installation

  • Grab the
    src/SendyPHP.php
    file and place it into your file structure.
  • Require SendyPHP in the location you would like to utilize it.
    require('SendyPHP.php');

Usage

Create an instance of the class while passing in an array including your API key, installation URL, and the List ID you wish to work with. ```php

$config = array(
    'api_key' => 'yourapiKEYHERE', //your API key is available in Settings
    'installation_url' => 'http://updates.mydomain.com',  //Your Sendy installation
    'list_id' => 'your_list_id_goes_here'
);

$sendy = new \SendyPHP\SendyPHP($config);

//you can change the list_id you are referring to at any point $sendy->setListId("a_different_list_id");

Methods

After creating a new instance of SendyPHP call any of the methods below

Return Values

The return value of any of these functions will include both a status, and a message to go with that status.

The status is a boolean value of true or false and the message will vary based on the type of action being performed.

```php //example of a succesful return value array( 'status'=>true, 'message'=>'Already Subscribed' )

//example of a UNsuccesful return value
array(
    'status'=>false,
    'message'=>'Some fields are missing.'
)

I have commented and organized the code so as to be readable, if you have further questions on the status or messages being returned, please refer to the library comments.

subscribe(array $values)

This method takes an array of

$values
and will attempt to add the
$values
into the list specified in
$list_id
    $results = $sendy->subscribe(array(
        'name'=>'Jim',
        'email' => '[email protected]', //this is the only field required by sendy
        'customfield1' => 'customValue'
    ));

Note: Be sure to add any custom fields to the list in Sendy before utilizing them inside this library. Another Note: If a user is already subscribed to the list, the library will return a status of

true
. Feel free to edit the code to meet your needs.

unsubscribe($email)

Unsubscribes the provided e-mail address (if it exists) from the current list.

php
    $results = $sendy->unsubscribe('[email protected]');

substatus($email)

Returns the status of the user with the provided e-mail address (if it exists) in the current list.

php
    $results = $sendy->substatus('[email protected]');
Note: refer to the code or see http://sendy.co/api for the types of return messages you can expect.

subcount()

Returns the number of subscribers to the current list.

php
    $results = $sendy->subcount();

createCampaign(array $values)

This method takes an array of

$values
and will creates a campaign (with an option to send it too).
php
    $results = $sendy->createCampaign(array(
        'from_name' => 'Some Name',
        'from_email' => '[email protected]',
        'reply_to' => '[email protected]',
        'subject' => 'Some Subject',
        'plain_text' => 'Amazing campaign', // (optional).
        'html_text' => '

Amazing campaign

', 'list_ids' => 'your_list_id', // Required only if you set send_campaign to 1. 'brand_id' => 0, // Required only if you are creating a 'Draft' campaign. 'query_string' => 'some', // eg. Google Analytics tags. 'send_campaign' => 0 // Set to 1 if you want to send the campaign as well and not just create a draft. Default is 0. ));

setListId($list_id) and getListId()

Change or get the list you are currently working with. ```php

//set or switch the list id
$sendy->setListId('another_list_id');

//get the current list id echo $sendy->getListId();

Unit tests

All unit tests are located under src/test directory. To run the tests type in the below from the project root.

```shell php vendor/bin/phpunit src/test/SendyPHPTest.php

Ensure that the API keys are setup for testing : ```php

    $config = [
        'api_key' => 'xxx', //your API key is available in Settings
        'installation_url' => 'http://my.sendy.installation.com',  //Your Sendy installation
        'list_id' => 'xxx'// List ID
    ];

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.