privilegedemarque/modules/mailjet_sync/mailjet_sync.php

735 lines
29 KiB
PHP
Executable File

<?php
if (!defined('_PS_VERSION_'))
exit;
require_once('libraries/IMailjetSyncApiClient.php');
class Mailjet_Sync extends Module
{
public function __construct()
{
$this->name = 'mailjet_sync';
$this->version = '1.6.2';
$this->author = 'Antadis';
$this->tab = 'advertising_marketing';
// $this->module_key = '3a2a1733c24aa77ef5fd5e7ad9a7c77a';
$this->ps_versions_compliancy = array('min' => '1.5', 'max' => '1.6');
$this->need_instance = 0;
$this->bootstrap = true;
parent::__construct();
$config = Configuration::getMultiple(array('MAILJETSYNC_API_KEY', 'MAILJETSYNC_SECRET_KEY', 'MAILJETSYNC_LIST_ID', 'MAILJETSYNC_LIST_ID_PRO'));
if (empty($config['MAILJETSYNC_API_KEY']) || empty($config['MAILJETSYNC_API_KEY']))
$this->warning = $this->l('API key & secret must be configured in order to use this module correctly.');
else
if ($config['MAILJETSYNC_LIST_ID'] == 0 && $config['MAILJETSYNC_LIST_ID_PRO'] == 0)
$this->warning = $this->l('No list of contacts set for this module.');
$this->displayName = $this->l('MailJet Sync for Prestashop 1.5');
$this->description = $this->l('Synchronize automatically your list of subscribers in Prestashop with your MailJet account, and the reverse too.');
$this->confirmUninstall = $this->l('Are you sure you want to uninstall this module ? All your settings will be lost.');
}
public function install()
{
if (Shop::isFeatureActive())
Shop::setContext(Shop::CONTEXT_ALL);
if (!parent::install()
|| !$this->isCurlEnabled()
|| !Configuration::updateValue('MAILJETSYNC_EVENT_TOKEN', Tools::strtoupper(Tools::passwdGen(16)))
|| !Configuration::updateValue('MAILJETSYNC_API_KEY', '')
|| !Configuration::updateValue('MAILJETSYNC_SECRET_KEY', '')
|| !Configuration::updateValue('MAILJETSYNC_DELETE_CONTACT', false)
|| !Configuration::updateValue('MAILJETSYNC_OLD_API', true)
|| !Configuration::updateValue('MAILJETSYNC_LIST_ID', '0')
|| !Configuration::updateValue('MAILJETSYNC_LIST_ID_PRO', '0')
|| !Configuration::updateValue('MAILJETSYNC_LIST_ID_Q', '0')
|| !Configuration::updateValue('MAILJETSYNC_LIST_ID_H', '0')
|| !Configuration::updateValue('MAILJETSYNC_LIST_ID_3', '0')
|| !Configuration::updateValue('MAILJETSYNC_LIST_ID_DESABONNES', '0')
|| !Configuration::updateValue('MAILJETSYNC_LIST_ID_INACTIFS', '0')
|| !$this->registerHook('actionCustomerAccountAdd')
|| !$this->registerHook('actionObjectCustomerUpdateAfter')
|| !$this->registerHook('actionObjectCustomerDeleteBefore')
|| !$this->registerHook('displayHeader'))
return false;
return true;
}
public function uninstall()
{
if (!Configuration::deleteByName('MAILJETSYNC_EVENT_TOKEN')
|| !Configuration::deleteByName('MAILJETSYNC_SECRET_KEY')
|| !Configuration::deleteByName('MAILJETSYNC_API_KEY')
|| !Configuration::deleteByName('MAILJETSYNC_OLD_API')
|| !Configuration::deleteByName('MAILJETSYNC_LIST_ID')
|| !Configuration::deleteByName('MAILJETSYNC_LIST_ID_PRO')
|| !Configuration::deleteByName('MAILJETSYNC_LIST_ID_Q')
|| !Configuration::deleteByName('MAILJETSYNC_LIST_ID_H')
|| !Configuration::deleteByName('MAILJETSYNC_LIST_ID_3')
|| !Configuration::deleteByName('MAILJETSYNC_LIST_ID_DESABONNES')
|| !Configuration::deleteByName('MAILJETSYNC_LIST_ID_INACTIFS')
|| !Configuration::deleteByName('MAILJETSYNC_DELETE_CONTACT')
|| !parent::uninstall())
return false;
return true;
}
private function getClient()
{
//$api_version = (Configuration::get('MAILJETSYNC_OLD_API') == true) ? 1 : 3;
$api_version = 3;
$api_key = Configuration::get('MAILJETSYNC_API_KEY');
$api_secret = Configuration::get('MAILJETSYNC_SECRET_KEY');
$api_client = MailjetSyncApiClientFactory::create($api_version, $api_key, $api_secret);
return $api_client;
}
private function testAPI($api_key, $secret_key)
{
$mj = $this->getClient();
return $mj->testAPI($api_key, $secret_key);
}
public function getContent()
{
$output = null;
/*
// API version
if (Tools::isSubmit('submitVersion'))
{
$old_api = Tools::getValue('MAILJETSYNC_OLD_API');
if ($old_api === false)
$output .= $this->displayError($this->l('Invalid settings'));
else
{
Configuration::updateValue('MAILJETSYNC_OLD_API', $old_api);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
}
*/
// API key
if (Tools::isSubmit('submitKey'))
{
$api_key = Tools::getValue('MAILJETSYNC_API_KEY');
$secret_key = Tools::getValue('MAILJETSYNC_SECRET_KEY');
if (!$api_key
|| !$secret_key
|| empty($api_key)
|| empty($secret_key)
|| !$this->testAPI($api_key, $secret_key))
$output .= $this->displayError($this->l('Invalid API and/or Secret key'));
else
{
Configuration::updateValue('MAILJETSYNC_API_KEY', $api_key);
Configuration::updateValue('MAILJETSYNC_SECRET_KEY', $secret_key);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
}
// List
if (Tools::isSubmit('submitList'))
{
$list_id = Tools::getValue('MAILJETSYNC_LIST_ID');
if (!$list_id
|| empty($list_id)
|| $list_id == 0)
$output .= $this->displayError($this->l('Invalid list'));
else
{
Configuration::updateValue('MAILJETSYNC_LIST_ID', $list_id);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
$list_id_pro = Tools::getValue('MAILJETSYNC_LIST_ID_PRO');
if (!$list_id_pro
|| empty($list_id_pro)
|| $list_id_pro == 0)
$output .= $this->displayError($this->l('Invalid list'));
else
{
Configuration::updateValue('MAILJETSYNC_LIST_ID_PRO', $list_id_pro);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
$list_id_q = Tools::getValue('MAILJETSYNC_LIST_ID_Q');
if (!$list_id_q
|| empty($list_id_q)
|| $list_id_q == 0)
$output .= $this->displayError($this->l('Invalid list'));
else
{
Configuration::updateValue('MAILJETSYNC_LIST_ID_Q', $list_id_q);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
$list_id_h = Tools::getValue('MAILJETSYNC_LIST_ID_H');
if (!$list_id_h
|| empty($list_id_h)
|| $list_id_h == 0)
$output .= $this->displayError($this->l('Invalid list'));
else
{
Configuration::updateValue('MAILJETSYNC_LIST_ID_H', $list_id_h);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
$list_id_3 = Tools::getValue('MAILJETSYNC_LIST_ID_3');
if (!$list_id_3
|| empty($list_id_3)
|| $list_id_3 == 0)
$output .= $this->displayError($this->l('Invalid list'));
else
{
Configuration::updateValue('MAILJETSYNC_LIST_ID_3', $list_id_3);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
$list_id_desabonnes = Tools::getValue('MAILJETSYNC_LIST_ID_DESABONNES');
if (!$list_id_desabonnes
|| empty($list_id_desabonnes)
|| $list_id_desabonnes == 0)
$output .= $this->displayError($this->l('Invalid list'));
else
{
Configuration::updateValue('MAILJETSYNC_LIST_ID_DESABONNES', $list_id_desabonnes);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
$list_id_inactifs = Tools::getValue('MAILJETSYNC_LIST_ID_INACTIFS');
if (!$list_id_inactifs
|| empty($list_id_inactifs)
|| $list_id_inactifs == 0)
$output .= $this->displayError($this->l('Invalid list'));
else
{
Configuration::updateValue('MAILJETSYNC_LIST_ID_INACTIFS', $list_id_inactifs);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
}
// Settings
if (Tools::isSubmit('submitSettings'))
{
$delete_contact = Tools::getValue('MAILJETSYNC_DELETE_CONTACT');
if ($delete_contact === false)
$output .= $this->displayError($this->l('Invalid settings'));
else
{
Configuration::updateValue('MAILJETSYNC_DELETE_CONTACT', $delete_contact);
$output .= $this->displayConfirmation($this->l('Settings updated'));
}
}
$output .= $this->displayForm();
return $output.$this->context->smarty->fetch($this->local_path.'views/templates/admin/configure.tpl');
}
public function displayForm()
{
// Get default language
$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');
$fields_form = array();
/*
// API version
$fields_form[]['form'] = array(
'legend' => array(
'title' => $this->l('API version'),
),
'input' => array(
array(
'type' => (version_compare(_PS_VERSION_, '1.6') < 0) ? 'radio' : 'switch',
'label' => $this->l('Old version of the API', get_class($this), null, false),
'name' => 'MAILJETSYNC_OLD_API',
'required' => false,
'class' => 't',
'is_bool' => true,
'values' => array(
array(
'id' => 'old_api_on',
'value' => 1,
'label' => $this->l('Enabled', get_class($this), null, false)
),
array(
'id' => 'old_api_off',
'value' => 0,
'label' => $this->l('Disabled', get_class($this), null, false)
)
),
),
),
'submit' => array(
'title' => $this->l('Save'),
'name' => 'submitVersion',
'class' => 'button'
)
);
*/
// API key
$fields_form[]['form'] = array(
'legend' => array(
'title' => $this->l('MailJet keys'),
),
'description' => $this->l('You must have a MailJet account. You can create one on their website : ')
.'<a href="https://www.mailjet.com/signup" target="_blank">https://www.mailjet.com/signup</a>',
'input' => array(
array(
'type' => 'text',
'label' => $this->l('Your MailJet API key'),
'desc' => $this->l('Example: 0123456789abcdef0123456789abcdef'),
'name' => 'MAILJETSYNC_API_KEY',
'size' => 45,
'required' => true
),
array(
'type' => 'text',
'label' => $this->l('Your MailJet Secret key'),
'desc' => $this->l('Example: 0123456789abcdef0123456789abcdef'),
'name' => 'MAILJETSYNC_SECRET_KEY',
'size' => 45,
'required' => true
)
),
'submit' => array(
'title' => $this->l('Save'),
'name' => 'submitKey',
'class' => 'button'
)
);
// List
$lists = $this->getLists();
usort($lists, function($a, $b) {
if ($a['name']==$b['name']) {
return 0;
}
else {
return $a['name'] < $b['name'] ? -1 : 1;
}
});
$mailjet_list_options = array(
'default' => array(
'label' => $this->l('Select a list'),
'value' => 0
),
'query' => $lists,
'id' => 'id',
'name' => 'name',
);
$fields_form[]['form'] = array(
'legend' => array(
'title' => $this->l('Default list'),
),
'input' => array(
array(
'type' => 'select',
'label' => $this->l('MailJet list "Particuliers"'),
'name' => 'MAILJETSYNC_LIST_ID',
'options' => $mailjet_list_options,
'required' => true
),
array(
'type' => 'select',
'label' => $this->l('MailJet list "Pro"'),
'name' => 'MAILJETSYNC_LIST_ID_PRO',
'options' => $mailjet_list_options,
'required' => true
),
array(
'type' => 'select',
'label' => $this->l('MailJet list "Quotidien"'),
'name' => 'MAILJETSYNC_LIST_ID_Q',
'options' => $mailjet_list_options,
'required' => true
),
array(
'type' => 'select',
'label' => $this->l('MailJet list "Hebdo"'),
'name' => 'MAILJETSYNC_LIST_ID_H',
'options' => $mailjet_list_options,
'required' => true
),
array(
'type' => 'select',
'label' => $this->l('MailJet list "3x per week"'),
'name' => 'MAILJETSYNC_LIST_ID_3',
'options' => $mailjet_list_options,
'required' => true
),
array(
'type' => 'select',
'label' => $this->l('MailJet list "désabonnés"'),
'name' => 'MAILJETSYNC_LIST_ID_DESABONNES',
'options' => $mailjet_list_options,
'required' => true
),
array(
'type' => 'select',
'label' => $this->l('MailJet list "inactifs"'),
'name' => 'MAILJETSYNC_LIST_ID_INACTIFS',
'options' => $mailjet_list_options,
'required' => true
)
),
'submit' => array(
'title' => $this->l('Save'),
'name' => 'submitList',
'class' => 'button'
)
);
// Settings
$fields_form[]['form'] = array(
'legend' => array(
'title' => $this->l('Settings'),
),
'input' => array(
array(
'type' => (version_compare(_PS_VERSION_, '1.6') < 0) ? 'radio' : 'switch',
'label' => $this->l('Delete or unsubscribe', get_class($this), null, false),
'name' => 'MAILJETSYNC_DELETE_CONTACT',
'required' => false,
'class' => 't',
'is_bool' => true,
'values' => array(
array(
'id' => 'delete_contact_on',
'value' => 1,
'label' => $this->l('Enabled', get_class($this), null, false)
),
array(
'id' => 'delete_contact_off',
'value' => 0,
'label' => $this->l('Disabled', get_class($this), null, false)
)
),
),
),
'submit' => array(
'title' => $this->l('Save'),
'name' => 'submitSettings',
'class' => 'button'
)
);
$helper = new HelperForm();
// Module, token and currentIndex
$helper->module = $this;
$helper->name_controller = $this->name;
$helper->token = Tools::getAdminTokenLite('AdminModules');
$helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name;
// Language
$helper->default_form_language = $default_lang;
$helper->allow_employee_form_lang = $default_lang;
// Title and toolbar
$helper->title = $this->displayName;
$helper->show_toolbar = true; // false -> remove toolbar
$helper->toolbar_scroll = true; // yes - > Toolbar is always visible on the top of the screen.
$helper->submit_action = 'submit'.$this->name;
$helper->toolbar_btn = array();
// Load current value
$helper->fields_value['MAILJETSYNC_API_KEY'] = Configuration::get('MAILJETSYNC_API_KEY');
$helper->fields_value['MAILJETSYNC_SECRET_KEY'] = Configuration::get('MAILJETSYNC_SECRET_KEY');
$helper->fields_value['MAILJETSYNC_LIST_ID'] = Configuration::get('MAILJETSYNC_LIST_ID');
$helper->fields_value['MAILJETSYNC_LIST_ID_PRO'] = Configuration::get('MAILJETSYNC_LIST_ID_PRO');
$helper->fields_value['MAILJETSYNC_LIST_ID_Q'] = Configuration::get('MAILJETSYNC_LIST_ID_Q');
$helper->fields_value['MAILJETSYNC_LIST_ID_H'] = Configuration::get('MAILJETSYNC_LIST_ID_H');
$helper->fields_value['MAILJETSYNC_LIST_ID_3'] = Configuration::get('MAILJETSYNC_LIST_ID_3');
$helper->fields_value['MAILJETSYNC_LIST_ID_DESABONNES'] = Configuration::get('MAILJETSYNC_LIST_ID_DESABONNES');
$helper->fields_value['MAILJETSYNC_LIST_ID_INACTIFS'] = Configuration::get('MAILJETSYNC_LIST_ID_INACTIFS');
$helper->fields_value['MAILJETSYNC_DELETE_CONTACT'] = Configuration::get('MAILJETSYNC_DELETE_CONTACT');
//$helper->fields_value['MAILJETSYNC_OLD_API'] = Configuration::get('MAILJETSYNC_OLD_API');
$this->context->smarty->assign('event_url', $this->context->link->getModuleLink($this->name, 'event', array('token' => Configuration::get('MAILJETSYNC_EVENT_TOKEN'))));
return $helper->generateForm($fields_form);
}
private function isConfigured()
{
return (Configuration::get('MAILJETSYNC_API_KEY')
&& Configuration::get('MAILJETSYNC_SECRET_KEY'));
}
private function getLists()
{
$mj = $this->getClient();
$response = $mj->getLists();
return $response;
}
private function addContact($email, $isPro = false)
{
$mj = $this->getClient();
if(!$isPro) {
if ($mj->addContactToList($email, Configuration::get('MAILJETSYNC_LIST_ID'))) {
return true;
} else {
return false;
}
} elseif ($isPro) {
if ($mj->addContactToList($email, Configuration::get('MAILJETSYNC_LIST_ID_PRO'))) {
return true;
} else {
return false;
}
}
return false;
}
private function addContactWithDetails($customer, $isPro = false, $frequence_nw = 0) {
switch ($frequence_nw) {
case Customer::FREQUENCE_NW_QUOTIDIEN:
$frequence = 'quotidien';
$list = Configuration::get('MAILJETSYNC_LIST_ID_Q');
break;
case Customer::FREQUENCE_NW_HEBDO:
$frequence = 'hebdomadaire';
$list = Configuration::get('MAILJETSYNC_LIST_ID_H');
break;
case Customer::FREQUENCE_NW_TRIHEBDO:
$frequence = '3 fois par semaine';
$list = Configuration::get('MAILJETSYNC_LIST_ID_3');
break;
default:
$frequence = 'quotidien';
$list = Configuration::get('MAILJETSYNC_LIST_ID_Q');
break;
}
$email = explode("@", $customer->email);
$email = explode(".", $email[1]);
$email = $email[0];
$contacts = array(
array(
"Email" => $customer->email,
"Properties" => array(
"token" => Customer::getUrlAutologin($customer->id, $customer->email),
"frequence" => $frequence,
"prenom" => $customer->firstname,
"nom" => $customer->lastname,
"fai" => $email,
"group" => $isPro ? 'Pro' : 'Particulier',
"date_inscription" => date('Y-m-d\TH:i:s\Z',strtotime($customer->date_add)),
"ref_inscription" => (int)strtotime($customer->date_add),
"id" => $customer->id,
)
)
);
$lists = array(
array(
"ListID" => Configuration::get('MAILJETSYNC_LIST_ID_Q'),
"Action" => ((int) $list !== (int) Configuration::get('MAILJETSYNC_LIST_ID_Q')) ? "remove" : "addforce"
),
array(
"ListID" => Configuration::get('MAILJETSYNC_LIST_ID_H'),
"Action" => ((int) $list !== (int) Configuration::get('MAILJETSYNC_LIST_ID_H')) ? "remove" : "addforce"
),
array(
"ListID" => Configuration::get('MAILJETSYNC_LIST_ID_3'),
"Action" => ((int) $list !== (int) Configuration::get('MAILJETSYNC_LIST_ID_3')) ? "remove" : "addforce"
),
array(
"ListID" => Configuration::get('MAILJETSYNC_LIST_ID'),
"Action" => $isPro ? "remove" : "addforce"
),
array(
"ListID" => Configuration::get('MAILJETSYNC_LIST_ID_PRO'),
"Action" => $isPro ? "addforce" : "remove"
)
,
array(
"ListID" => Configuration::get('MAILJETSYNC_LIST_ID_DESABONNES'),
"Action" => "remove"
)
);
$mj = $this->getClient();
if ($mj->addDetailedContactToList($contacts, $lists)) {
return true;
} else {
return false;
}
return false;
}
private function deleteContactFromAllLists($customer, $remove = 0, $add_to_desabonnes=true)
{
$mj = $this->getClient();
if ($mj->deleteContactFromAllLists($customer->email, $remove)) {
if ($add_to_desabonnes) {
$mj->addContactToList(
$customer->email,
Configuration::get('MAILJETSYNC_LIST_ID_DESABONNES')
);
}
error_log('ANTADIS DEBUG MAIJET - OK - Delete contact from all lists (and add to list DESABONNES)');
return true;
} else {
error_log('ANTADIS DEBUG MAIJET - FAIL - Delete contact from all lists');
return false;
}
}
/*
private function deleteContact($customer, $remove = 0)
{
switch ($customer->frequence_nw) {
case '0':
$list = Configuration::get('MAILJETSYNC_LIST_ID_Q');
break;
case '1':
$list = Configuration::get('MAILJETSYNC_LIST_ID_H');
break;
case '2':
$list = Configuration::get('MAILJETSYNC_LIST_ID_3');
break;
default:
$list = Configuration::get('MAILJETSYNC_LIST_ID_Q');
break;
}
if (Customer::isGroupPro($customer->id)) {
$list2 = Configuration::get('MAILJETSYNC_LIST_ID_PRO');
} else {
$list2 = Configuration::get('MAILJETSYNC_LIST_ID');
}
$mj = $this->getClient();
if ($mj->deleteContactFromList($customer->email, $list, $remove) && $mj->deleteContactFromList($customer->email, $list2, $remove)) {
error_log('ANTADIS DEBUG MAIJET - OK - Delete contact from list Q/H/3 : '.print_r($list, true).' - list Pro/Part : '.print_r($list2, true));
if ($remove == 1) {
$mj->deleteContactFromList($customer->email, Configuration::get('MAILJETSYNC_LIST_ID'), $remove);
$mj->deleteContactFromList($customer->email, Configuration::get('MAILJETSYNC_LIST_ID_PRO'), $remove);
error_log('ANTADIS DEBUG MAIJET - OK - Redondant delete contact from both Pro/part lists');
}
return true;
} else {
error_log('ANTADIS DEBUG MAIJET - FAIL - Delete contact from list Q/H/3 : '.print_r($list, true).' - list Pro/Part : '.print_r($list2, true));
return false;
}
}
*/
public function hookActionCustomerAccountAdd($params)
{
$new_customer = $params['newCustomer'];
if (!Validate::isLoadedObject($new_customer))
return false;
$newsletter = $new_customer->newsletter;
$email = $new_customer->email;
if ($new_customer->newsletter == 0 || !Validate::isEmail($email)) {
return true;
}
return $this->addContactWithDetails($new_customer, Customer::isGroupPro($new_customer->id));
}
public function hookActionObjectCustomerUpdateAfter($params)
{
$customer = $params['object'];
if (!Validate::isLoadedObject($customer))
return false;
if (!isset($customer->newsletter))
return false;
if ($customer->blocked_newsletter == 1) {
$mj = $this->getClient();
$mj->deleteContactFromAllLists($customer->email, 0, false);
$mj->addContactToExclusionList($customer->email);
}
else {
$mj = $this->getClient();
$mj->removeContactFromExclusionList($customer->email);
}
if ($customer->deleted == 1) {
$customer->newsletter = 0;
return $this->deleteContactFromAllLists($customer, 1, false);
}
if ($customer->newsletter == 0) {
return $this->deleteContactFromAllLists($customer, Configuration::get('MAILJETSYNC_DELETE_CONTACT'), true);
} else {
return $this->addContactWithDetails($customer, Customer::isGroupPro($customer->id), $customer->frequence_nw);
}
}
public function hookActionObjectCustomerDeleteBefore($params)
{
$customer = $params['object'];
if (!Validate::isLoadedObject($customer))
return false;
return $this->deleteContactFromAllLists($customer, 1, false);
}
private function prepareHook()
{
if (!$this->isConfigured()) {
return false;
}
if (Tools::isSubmit('submitNewsletter')) {
$this->newsletterRegistration();
}
}
public function hookDisplayHeader($params)
{
return $this->prepareHook();
}
public function hookDisplayLeftColumn($params)
{
return $this->hookDisplayHeader($params);
}
public function hookDisplayRightColumn($params)
{
return $this->hookDisplayHeader($params);
}
public function hookDisplayFooter($params)
{
return $this->hookDisplayHeader($params);
}
private function newsletterRegistration()
{
$email = Tools::getValue('email');
if ($email === false || empty($email) || !Validate::isEmail($email))
return $this->l('Invalid e-mail address');
$c = Customer::getCustomersByEmail($email);
$customer = new Customer($c['id_customer']);
$action = Tools::getValue('action');
switch ($action)
{
// Subscription
case '0':
return $this->addContactWithDetails($customer, Customer::isGroupPro((int) $customer->id),$customer->frequence_nw);
// Unsubscription
case '1':
return $this->deleteContactFromAllLists($customer, Configuration::get('MAILJETSYNC_DELETE_CONTACT'), true);
default:
return false;
}
}
/* Check if cUrl extension is enabled */
private function isCurlEnabled()
{
return function_exists('curl_version');
}
}