Joywork/ajax/ajax_vue_unisender.php

171 lines
5.2 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/ajax/vue_php_function.php");
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
require_once($_SERVER['DOCUMENT_ROOT']."/engine/classes/Unisender/autoload.php");
use Unisender\ApiWrapper\UnisenderApi;
$data = json_decode(file_get_contents("php://input"));
$pdo = new MysqlPdo(hst, ndb, user, pass);
$sql = "SET NAMES 'utf8'";
$pdo->query($sql);
$request = $data->request;
/**
* Сохранение api ключа
*
*/
if($request == 'save_key'){
$key = $data->api_key;
$agency_id = (int)$data->agency_id;
$unisender = new UnisenderClass($pdo, $agency_id);
$unisender->save_key($key);
$uni=new UnisenderApi($key);
$result = json_decode($uni->getLists());
//var_dump($result);
if(isset($result->result)) echo 'true';
else echo 'false';
}
/**
* Получение ключа
*/
if($request == 'get_key'){
$agency_id = (int)$data->agency_id;
$unisender = new UnisenderClass($pdo, $agency_id);
$key = $unisender->get_key();
echo $key;
}
/**
* fff
*/
if($request == 'open_campaigns'){
$agency_id = (int)$data->agency_id;
$all = $data->all;
$clients_ids = $data->clients_ids;
$type = $data->type;
$unisender = new UnisenderClass($pdo, $agency_id);
$result = $unisender->get_list_client($type, $all, $clients_ids);
echo json_encode($result, JSON_UNESCAPED_UNICODE);
exit();
}
if($request == 'create_api_list'){
$agency_id = $data->agency_id;
$title = $data->title_list;
$clients = $data->clients;
$fields_name = ['email', 'phone','email_status', 'email_list_ids'];
$fields = array();
$field = array();
$unisender = new UnisenderClass($pdo, $agency_id);
$key = $unisender->get_key();
$uni=new UnisenderApi($key);
$list = json_decode($uni->createList(Array("title"=>$title)));
foreach($clients as $i => $client){
$fields[$i][] = $client->email;
$fields[$i][] = $client->phone;
$fields[$i][] = 'active';
$fields[$i][] = $list->result->id;
// $field[$i]['email'] = $client->email;
// $fields['name'] = $clients->fio;
}
$result = json_decode($uni->importContacts(Array("field_names"=>$fields_name, "data"=>$fields)));
$uni=new UnisenderApi($key);
//$result = json_decode('{"result": {"id": 3}}');
echo json_encode($list, JSON_UNESCAPED_UNICODE);
exit();
}
if($request == 'get_api_templates'){
$result = array();
$agency_id = (int)$data->agency_id;
$unisender = new UnisenderClass($pdo, $agency_id);
$key = $unisender->get_key();
$uni=new UnisenderApi($key);
$res = $uni->getTemplates();
$templats = json_decode($res, true);
if(isset($templats['result'])){
foreach($templats['result'] as $template){
//var_dump($template);
$result['templats'][] = array('code'=>$template['id'], 'name'=>$template['title']);
$result['templats_api'][$template['id']] = $template;
}
}
echo json_encode($result, JSON_UNESCAPED_UNICODE);
exit();
}
if($request == 'save_campaign'){
$agency_id = (int)$data->agency_id;
$list_id = $data->list_id;
$subject = $data->subject;
$template_id = $data->template_id;
$sender_email = $data->sender_email;
$sender_name = $data->sender_name;
$clients = $data->clients;
$user_id = (int)$data->user_id;
$unisender = new UnisenderClass($pdo, $agency_id);
$key = $unisender->get_key();
$uni=new UnisenderApi($key);
$message = json_decode($uni->createEmailMessage(Array("sender_name"=>$sender_name,
'sender_email'=>$sender_email,
'list_id'=>$list_id,
'subject'=>$subject,
'template_id'=>$template_id
)));
// var_dump($message);
if(isset($message->error)){
$result['error'] = 1;
$result['mes'] = $message->error;
} else {
$message_id = $message->result->message_id;
$result = json_decode($uni->createCampaign(Array('message_id'=>$message_id)));
if(isset($result->result->campaign_id)){
$comment="Сделана рассылка «".$subject."»";
$sql_event = "INSERT INTO user_client_events (client_id, type, comment, from_id, user_id, calendar_view, campaign_id) VALUES ";
$sql_event_part = '';
foreach($clients as $client){
$who_work = $user_id;
if($client->who_work > 0){
$who_work = (int)$client->who_work;
}
if($sql_event_part != '') $sql_event_part .= ',';
$sql_event_part .= "({$client->id}, 'comment', '{$comment}', {$user_id}, {$who_work}, 1, {$result->result->campaign_id})";
}
if($sql_event_part != '') {
$sql_event .= $sql_event_part;
$pdo->query($sql_event);
}
}
}
echo json_encode($result);
exit();
}