include_once _PS_ROOT_DIR_ . '/init.php'; $response = false; /* $token_ok = Tools::getAdminTokenLite('AdminModules'); */ $token_ok = Tools::getAdminToken('AdminModules'); if (!Tools::getValue('token') && Tools::getValue('token') != $token_ok) { die('hack attempt'); } if (Tools::getValue('idfilter') == 0 && Tools::getValue('action') == 'getQuery') { die('You have to save the list first.'); } include_once _PS_MODULE_DIR_ . 'mailjet/mailjet.php'; /* include_once(_PS_MODULE_DIR_.'mailjet/classes/MailjetAPI.php'); */ include_once _PS_MODULE_DIR_ . 'mailjet/classes/MailJetTemplate.php'; include_once _PS_MODULE_DIR_ . 'mailjet/classes/hooks/synchronization/SynchronizationAbstract.php'; include_once _PS_MODULE_DIR_ . 'mailjet/classes/hooks/synchronization/Segment.php'; if (Tools::getValue('action') == 'getQuery') { Configuration::updateValue('MJ_PERCENTAGE_SYNC', 0); $obj = new Segmentation(); $res_contacts = Db::getInstance()->executeS($obj->getQuery($_POST, true, false)); $api = MailjetTemplate::getApi(); $synchronization = new HooksSynchronizationSegment(MailjetTemplate::getApi()); $response = $synchronization->sychronize($res_contacts, Tools::getValue('idfilter'), Tools::getValue('name')); } else { if (Tools::getValue('action') == 'getPercentage') { $response = Configuration::get('MJ_PERCENTAGE_SYNC'); } } if ($response === false) { $response = 'Error'; } echo $response;
public function checkAutoAssignment($id_customer = 0) { $sql = 'SELECT * FROM ' . _DB_PREFIX_ . 'mj_filter f LEFT JOIN ' . _DB_PREFIX_ . 'mj_condition c ON c.id_filter = f.id_filter WHERE f.assignment_auto = 1'; $rows = DB::getInstance()->executeS($sql); if (!is_array($rows)) { return $this; } $formatRows = array(); foreach ($rows as $row) { $id_filter = (int) $row['id_filter']; $formatRows[$id_filter]['mode'] = 0; $formatRows[$id_filter]['replace_customer'] = (bool) $row['replace_customer']; $formatRows[$id_filter]['name'] = $row['name']; $formatRows[$id_filter]['description'] = $row['description']; $formatRows[$id_filter]['idfilter'] = $id_filter; $formatRows[$id_filter]['idgroup'] = $row['id_group']; $formatRows[$id_filter]['rule_a'][] = $row['rule_a']; $formatRows[$id_filter]['rule_action'][] = $row['rule_action']; $formatRows[$id_filter]['baseSelect'][] = $row['id_basecondition']; $formatRows[$id_filter]['sourceSelect'][] = $row['id_sourcecondition']; $formatRows[$id_filter]['fieldSelect'][] = $row['id_fieldcondition']; $formatRows[$id_filter]['data'][] = $row['data']; $formatRows[$id_filter]['value1'][] = $row['value1']; $formatRows[$id_filter]['value2'][] = $row['value2']; } foreach ($formatRows as $filterId => $formatRow) { $obj = new Segmentation(); $sql = $obj->getQuery($formatRow, true) . ' HAVING c.id_customer = ' . (int) $id_customer; $result = DB::getInstance()->executeS($sql); if ($result && !$obj->belongsToGroup($formatRow['idgroup'], $id_customer)) { if ($formatRow['replace_customer']) { $sql = 'DELETE FROM ' . _DB_PREFIX_ . 'customer_group WHERE id_customer = ' . (int) $id_customer; Db::getInstance()->execute($sql); } $values = array('id_group' => (int) $formatRow['idgroup'], 'id_customer' => (int) $id_customer); DB::getInstance()->autoExecute(_DB_PREFIX_ . 'customer_group', $values, 'INSERT'); // Mailjet update $customer = new Customer($id_customer); } else { if (!$result && $obj->belongsToGroup($formatRow['idgroup'], $id_customer)) { $sql = 'DELETE FROM ' . _DB_PREFIX_ . 'customer_group WHERE id_group = ' . (int) $formatRow['idgroup'] . ' AND id_customer = ' . (int) $id_customer; DB::getInstance()->execute($sql); // Mailjet update $customer = new Customer($id_customer); } } $customer = new Customer($id_customer); $initialSynchronization = new HooksSynchronizationSingleUser(MailjetTemplate::getApi()); $mailjetListID = $obj->_getMailjetContactListId($filterId); if ($result) { $initialSynchronization->subscribe($customer->email, $mailjetListID); } else { $initialSynchronization->remove($customer->email, $mailjetListID); } } return $this; }
* @author PrestaShop SA <*****@*****.**> * @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ include_once realpath(dirname(__FILE__) . '/../../../../../') . '/config/config.inc.php'; include_once _PS_ROOT_DIR_ . '/init.php'; header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="customersegmentation' . time() . '.csv'); $token_ok = Tools::getAdminToken('AdminModules'); if (!Tools::getValue('token') && Tools::getValue('token') != $token_ok) { die('hack attempt'); } include_once _PS_MODULE_DIR_ . 'mailjet/mailjet.php'; $obj = new Segmentation(); $sql = Db::getInstance()->executeS($obj->getQuery($_POST, true, false)); if (empty($sql)) { die(utf8_decode($obj->trad[22])); } $header = array_keys($sql[0]); $csv = ''; foreach ($header as $h) { $csv .= '"' . preg_replace('/(\\r|\\n)/', '', utf8_decode($h)) . '";'; } $csv .= "\n"; foreach ($sql as $s) { foreach ($s as $field) { $csv .= '"' . utf8_decode($field) . '";'; } $csv .= "\n"; }