Skip to content

hocza/sendy-laravel

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

Sendy

Sendy Laravel

A service provider for Sendy API in Laravel 5

Latest Stable Version Total Downloads Latest Unstable Version License

Installation

composer require hocza/sendy:1.*

or append your composer.json with:

{
    "require" : {
        "hocza/sendy": "1.*"
    }
}

Add the following settings to the config/app.php

Service provider:

'providers' => [
    // ...
    'Hocza\Sendy\SendyServiceProvider',
]

For the Sendy:: facade

'aliases' => [
    // ...
    'Sendy' => 'Hocza\Sendy\Facades\Sendy',
]

Configuration

php artisan vendor:publish --provider="Hocza\Sendy\SendyServiceProvider"

It will create sendy.php within the config directory.

<?php

return [

    'listId' => '',
    'installationUrl' => '',
    'apiKey' => '',

];

Usage

Subscribe:

$data = [
    'email' => 'johndoe@example.com',
    'name' => 'John Doe',
    'any_custom_column' => 'value',
];

Sendy::subscribe($data);

RESPONSE (array)

In case of success:

['status' => true, 'message' => 'Subscribed']
['status' => true, 'message' => 'Already subscribed']

In case of error:

['status' => false, 'message' => 'The error message']

Unsubscribe:

$email = 'johndoe@example.com';
Sendy::unsubscribe($email);

RESPONSE (array)

In case of success:

['status' => true, 'message' => 'Unsubscribed']

In case of error:

['status' => false, 'message' => 'The error message']

Subscription status

$email = 'johndoe@example.com';
Sendy::status($email);

RESPONSE (Plain text)

Success:

  • Subscribed
  • Unsubscribed
  • Unconfirmed
  • Bounced
  • Soft bounced
  • Complained

Error:

  • No data passed
  • API key not passed
  • Invalid API key
  • Email not passed
  • List ID not passed
  • Email does not exist in list

Active subscriber count

Sendy::count();
#To check other list:
Sendy::setListId($list_id)->count();

RESPONSE (Plain text)

Success:

  • You'll get an integer of the active subscriber count

Error:

  • No data passed
  • API key not passed
  • Invalid API key
  • List ID not passed
  • List does not exist

Create campaign

<?php

$campaignOptions = [
    'from_name' => 'My Name',
    'from_email' => 'test@mail.com',
    'reply_to' => 'test@mail.com',
    'title' => 'My Campaign',
    'subject' => 'My Subject',
    'list_ids' => '1,2,3', // comma-separated, optional
    'brand_id' => 1,
    'query_string' => 'utm_source=sendy&utm_medium=email&utm_content=email%20newsletter&utm_campaign=email%20newsletter',
];
$campaignContent = [
    'plain_text' => 'My Campaign',
    'html_text' => View::make('mail.my-campaign'),
];
$send = false;

Sendy::createCampaign($campaignOptions, $campaignContent, $send);

RESPONSE (Plain text)

Success:

  • Campaign created
  • Campaign created and now sending

Error:

  • No data passed
  • API key not passed
  • Invalid API key
  • From name not passed
  • From email not passed
  • Reply to email not passed
  • Subject not passed
  • HTML not passed
  • List ID(s) not passed
  • One or more list IDs are invalid
  • List IDs does not belong to a single brand
  • Brand ID not passed
  • Unable to create campaign
  • Unable to create and send campaign

Change list ID

To change the default list ID simply prepend with setListId($list_id)
Examples:

Sendy::setListId($list_id)->subscribe($data);
Sendy::setListId($list_id)->unsubscribe($email);
Sendy::setListId($list_id)->status($email);
Sendy::setListId($list_id)->count();

Todo

  • Implementing the rest of the API. :)
  • better documentation - in progress as you can see :)

Buy me a coffee :)

Click here to lend your support to: Sendy-laravel and make a donation at pledgie.com !