acf
This commit is contained in:
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link https://www.tassos.gr
|
||||
* @copyright Copyright © 2024 Tassos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
namespace NRFramework\Integrations;
|
||||
|
||||
// No direct access
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
class SendInBlue extends Integration
|
||||
{
|
||||
/**
|
||||
* Create a new instance
|
||||
* @param array $options The service's required options
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function __construct($options)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->setKey($options['api']);
|
||||
$this->setEndpoint('https://api.sendinblue.com/v2.0');
|
||||
$this->options->set('headers.api-key', $this->key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Subscribes a user to a SendinBlue Account
|
||||
*
|
||||
* API Reference:
|
||||
* https://apidocs.sendinblue.com/user/#1
|
||||
*
|
||||
* @param string $email The user's email
|
||||
* @param array $params All the form fields
|
||||
* @param string $listid The List ID
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function subscribe($email, $params, $listid = false)
|
||||
{
|
||||
$data = array(
|
||||
'email' => $email,
|
||||
'attributes' => $params,
|
||||
);
|
||||
|
||||
if ($listid)
|
||||
{
|
||||
$data['listid'] = array($listid);
|
||||
}
|
||||
|
||||
$this->post('user/createdituser', $data);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all Campaign lists
|
||||
*
|
||||
* https://apidocs.sendinblue.com/list/#1
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getLists()
|
||||
{
|
||||
$data = array(
|
||||
'page' => 1,
|
||||
'page_limit' => 50
|
||||
);
|
||||
|
||||
$lists = array();
|
||||
|
||||
$data = $this->get('/list', $data);
|
||||
|
||||
if (!isset($data['data']['lists']) || !is_array($data['data']['lists']) || $data['data']['total_list_records'] == 0)
|
||||
{
|
||||
return $lists;
|
||||
}
|
||||
|
||||
foreach ($data['data']['lists'] as $key => $list)
|
||||
{
|
||||
$lists[] = array(
|
||||
'id' => $list['id'],
|
||||
'name' => $list['name']
|
||||
);
|
||||
}
|
||||
|
||||
return $lists;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the last error returned by either the network transport, or by the API.
|
||||
*
|
||||
* API Reference:
|
||||
* https://apidocs.sendinblue.com/response/
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLastError()
|
||||
{
|
||||
$body = $this->last_response->body;
|
||||
$message = '';
|
||||
|
||||
if (isset($body['code']) && ($body['code'] == 'failure'))
|
||||
{
|
||||
$message = $body['message'];
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user