Ahmad Awais

SHARE


Open Sourcing My Sendy PHP API Wrapper

Ahmad AwaisAhmad Awais

I recently started using Sendy.co (aff) to send emails. I was having trouble finding a good API wrapper for it. Spent more than five hours searching for one and ended up building one myself. I hope it helps.

🚀 GITHUB: ★ 15 ⑂ 4 →

Sendy PHP API Wrapper


🚀 Sendy PHP API Wrapper: Complete API interfacing.

API Wrapper For Sendy API

With this Sendy PHP API Wrapper you can do the following:

SUBSCRIBERS

LISTS

CAMPAIGNS

Get Started!

Getting started is easy. Here’s how you do it. You can check the example.php file as well.

Download ⚡️

Obviously, you’ll have to download the wrapper to your current setup. Several ways to do that.

Step 0. Define SENDY_API.

// Define the global var to avoid direct access to the library class.
define( 'Sendy_PHP_API_Wrapper', TRUE );

Step 1. Require the wrapper.

require_once( 'class-sendy-php-api.php' );

Step 2. Configure it.

$config = array(
    'installation_url' => 'http://send.yourdomain.com',  // Your Sendy installation URL (without trailing slash).
    'api_key'          => 'XXXXXXXXXXXXXXXXXXXXXXXXXX', // Your API key. Aavailable in Sendy Settings.
    'list_id'          => 'XXXXXXXXXXXXXXXXXXXXXXXXXX',
);

Step 3. Init.

$sendy = new \SENDY\Sendy_PHP_API( $config );

API KEY METHODS.

Method #1: Subscribe.

// Method #1: Subscribe.
$result_array = $sendy->subscribe( array(
    'name'   => 'Name',
    'email'  => '[email protected]', // This is the only field required by sendy.
    'custom' => 'field' // You can custom fields as well.
));

Method #2: Unsubscribe.

// Method #2: Unsubscribe.
$result_array = $sendy->unsubscribe( '[email protected]' );

Method #3: Subscriber Status.

// Method #3: Subscriber Status.
$result_array = $sendy->substatus( '[email protected]' );

Method #4: Delete Subscriber.

// Method #4: Delete Subscriber.
$result_array = $sendy->delete( '[email protected]' );

Method #5: Subscriber Count of a list.

// Method #5: Subscriber Count of a list.
$result_array = $sendy->subcount();

Method #6: Campaign — Draft And/Or Send as well.

// Method #6: Campaign — Draft And/Or Send as well.
$result_array = $sendy->campaign( array(
    'from_name'     => 'Your Name',
    'from_email'    => '[email protected]',
    'reply_to'      => '[email protected]',
    'subject'       => 'Your Subject',
    'plain_text'    => 'An Amazing campaign', // (optional).
    'html_text'     => '<h1>Amazing campaign</h1>',
    'brand_id'      => 0, // Required only if you are creating a 'Draft' campaign.
    'send_campaign' => 0 // Set to 1 if you want to send the campaign as well and not just create a draft. Default is 0.
    'list_ids'      => 'your_list_id', // Required only if you set send_campaign to 1.
    'query_string'  => 'some', // Eg. Google Analytics tags.
) );

Method #7: Set List ID.

// Method #7: Change the `list_id` you are referring to at any point.
$sendy->set_list_id( "XXXXXXX" );

Method #8: Get List ID.

// Method #7: Get the `list_id` you are referring to at any point.
$sendy->get_list_id( "XXXXXXX" );

Response

The response of this PHP wrapper is custom built. At the moment, it always returns a PHP Array. This array has the status of your action and an appropriate message in the response.

    // E.g. SUCCESS response.
    array(
        'status'  => true,
        'message' => 'Already Subscribed'
    )

    // E.g. FAIL response.
    array(
        'status'  => false,
        'message' => 'Some fields are missing.'
    )

Changelog

Version 1.0.0 2017-03-20

License & Credits

The code is licensed under MIT and a huge props to Jacob Bennett for his initial work on the lib.
Requires at least PHP 5.3.0 (otherwise remove the namespace).


🙌 WPCOUPLE PARTNERS:

This open source project is maintained by the help of awesome businesses listed below. What? Read more about it →

This also happens to be my first composer package, so yay! 🎉

Feedback is more than welcomed at GitHub.

🎩

WPTakeaway: Premium WordPress Newsletter!

Takeaway my professional opinion about Full Stack WordPress Development, building a business, growing a family, and everything web! Delivered to your inbox twice a month. 👻 I hate spam! Pinky Promise!

🔥 Ridiculously hard-working Full Stack Web DeveloperRegular WordPress Core Contributor 📣 TEDx Speaker ✌️ Spends 50% of his time building FOSS (Free & Open Source Software) used by over 10,000 Developers 🎖 WordPress Advocate & 🙌 Community Evangelist 👻 DevOps fanboy 😂 Cracks silly jokes 💜 Loves his wife (Maedah) 🍕 Learn more about Ahmad ↣

Say 👋 on Twitter @MrAhmadAwais | Subscribe to the WordPress Takeaway!