function viewAction() { $clearArray = array('flags'); $this->filter($clearArray); if (empty($this->params)) { $today = date("d.m.Y"); $this->params['dates'] = $today . '-' . $today; } $pagination = new Pagination(array('action' => $this->action, 'controller' => $this->controller, 'params' => $this->params, 'ajax' => true)); $models = AFActiveDataProvider::models('ProspectEmail', $this->params, $pagination); $dataProvider = $models->getAll(); $filterFields = $models->getoutFilterFields($clearArray, array('dates')); // set ajax table if (AF::isAjaxRequestModels()) { $this->view->includeFile('_table', array('application', 'views', 'emails'), array('access' => $this->access, 'controller' => $this->controller, 'dataProvider' => $dataProvider, 'pagination' => $pagination, 'filterFields' => $filterFields)); die; } $campaigns = Campaign::model()->cache()->findAllInArray(); $templates = Template::model()->cache()->findAllInArray(); $flags = ProspectEmail::getEmailFlags(); /* $campaignsFilter = $models->getFilterCampaigns(); $templatesFilter = $models->getFilterTemplates(); $flagsFilter = $models->getFilterFlags(); */ Assets::css('jquery-ui'); Assets::js('jquery-ui'); Assets::js('dateRange/jquery.daterange'); Assets::js('ajax_table'); Assets::js('af_input_field'); $this->addToPageTitle(__('prospect_emails')); $this->render('view', array('dataProvider' => $dataProvider, 'pagination' => $pagination, 'models' => $models, 'filterFields' => $filterFields, 'campaigns' => $campaigns, 'templates' => $templates, 'flags' => $flags)); }
<?php $tProspectEmailID = isset($_GET['prospect_email_id']) ? $_GET['prospect_email_id'] : false; $code = isset($_GET['code']) ? $_GET['code'] : false; if (!$tProspectEmailID && !$code) { die; } @(include_once '../settings/autoload.php'); $msql = SafeMySQL::getInstance(); $prospectEmailID = base_convert($tProspectEmailID, 36, 10); $prospectEmailModel = new ProspectEmail(); $prospectEmailModel->fillFromDbPk($prospectEmailID); if (!$prospectEmailModel->checkCode($code)) { die; } if ($prospectEmailModel->isFlag('open')) { die; } $prospectEmailModel->addFlags('open'); $prospectEmailModel->save(); $image = imagecreatetruecolor(1, 1) or die; imagefill($image, 0, 0, 0x0); header('Content-type: image/png'); imagepng($image); imagedestroy($image);
include_once '../settings/autoload.php'; $msql = SafeMySQL::getInstance(); $sql = "SELECT `t`.`template_id`, t.`body_subject`, t.`body_html`, t.`body_plain`\n FROM `campaigns_emails` as ce\n JOIN `prospects` ON ce.`campaign_id`=`prospects`.`campaign_id`\n JOIN `customers` ON `prospects`.`customer_id`=`customers`.`customer_id`\n JOIN `templates` as t USING(`template_id`)\n LEFT JOIN `prospect_emails` ON\n `customers`.`customer_id` = `prospect_emails`.`customer_id` AND\n ce.`campaign_id` = `prospect_emails`.`campaign_id` AND\n ce.`template_id` = `prospect_emails`.`template_id` AND\n ce.`day` = `prospect_emails`.`day`\n WHERE FIND_IN_SET('subscribed', `customers`.`flags`)>0\n AND `prospect_emails`.`email_id` IS NULL\n /*AND `prospects`.order_id IS NULL*/\n AND FLOOR((UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP( `prospects`.`created`))/86400) != 0\n GROUP BY `t`.`template_id`"; $templates = $msql->getInd('template_id', $sql); $sql = "SELECT `campaigns`.`smtp_id`, ce.*, `customers`.`email`, `addresses`.`fname`, `addresses`.`lname`, `customers`.`customer_id`\n FROM `campaigns`\n JOIN `campaigns_emails` as ce USING (`campaign_id`)\n JOIN `prospects` ON ce.`campaign_id`=`prospects`.`campaign_id`\n JOIN `customers` ON `prospects`.`customer_id`=`customers`.`customer_id`\n LEFT JOIN `addresses` ON `prospects`.`address_id`=`addresses`.`address_id`\n LEFT JOIN `prospect_emails` ON\n `customers`.`customer_id` = `prospect_emails`.`customer_id` AND\n ce.`campaign_id` = `prospect_emails`.`campaign_id` AND\n ce.`template_id` = `prospect_emails`.`template_id` AND\n ce.`day` = `prospect_emails`.`day`\n WHERE FIND_IN_SET('subscribed', `customers`.`flags`)>0\n AND `prospect_emails`.`email_id` IS NULL\n /*AND `prospects`.`order_id` IS NULL*/\n AND FLOOR((UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP( `prospects`.`created`))/86400) != 0\n ORDER BY `prospects`.`created`"; $result = $msql->getAll($sql); if (!$result) { die; } foreach ($result as $c => $item) { $item['body_subject'] = $templates[$item['template_id']]['body_subject']; $item['body_html'] = $templates[$item['template_id']]['body_html']; $item['body_plain'] = $templates[$item['template_id']]['body_plain']; //Create campaigns_emails $prospectEmailModel = new ProspectEmail(); $prospectEmailModel->created = 'NOW():sql'; $prospectEmailModel->campaign_id = $item['campaign_id']; $prospectEmailModel->customer_id = $item['customer_id']; $prospectEmailModel->day = $item['day']; $prospectEmailModel->template_id = $item['template_id']; if ($prospectEmailModel->save()) { $item['order_id'] = ''; $item['product_name'] = ''; $item['cs_number'] = ''; $item['address1'] = ''; $item['address2'] = ''; $item['city'] = ''; $item['state_id'] = ''; $item['state_name'] = ''; $item['zip'] = '';
$mail->SMTPSecure = "tls"; $mail->SMTPAuth = true; $mail->Username = $smtpModel->smtp_username; $mail->Password = $smtpModel->smtp_password; $mail->Host = $smtpModel->smtp_host; $mail->From = $smtpModel->smtp_email; $mail->FromName = $smtpModel->smtp_name; $mail->AddAddress($mailArray['email']); $mail->Subject = $mailArray['body_subject']; $mail->Body = $mailArray['body_html']; $mail->AltBody = $mailArray['body_plain']; //$mail->SMTPDebug = 2; if ($mail->Send()) { $jobModel->done(); if (isset($mailArray['prospect_email_id'])) { $prospectEmailModel = new ProspectEmail(); $prospectEmailModel->setIsNewRecord(false); $prospectEmailModel->email_id = $mailArray['prospect_email_id']; $prospectEmailModel->flags = 'sent'; $prospectEmailModel->save(false); } } else { $jobModel->setStatusError($mail->ErrorInfo); } unset($mail); break; case 'pixel': break; } unset($jobModel); }
<?php $tProspectEmailID = isset($_GET['prospect_email_id']) ? $_GET['prospect_email_id'] : false; $code = isset($_GET['code']) ? $_GET['code'] : false; if (!$tProspectEmailID && !$code) { die; } @(include_once '../settings/autoload.php'); //$msql = SafeMySQL::getInstance(); $prospectEmailID = base_convert($tProspectEmailID, 36, 10); $prospectEmailModel = new ProspectEmail(); $prospectEmailModel->fillFromDbPk($prospectEmailID); $campaignModel = new Campaign(); $campaignModel->fillFromDbPk($prospectEmailModel->campaign_id); $checkCode = $prospectEmailModel->checkCode($code); if ($checkCode) { $prospectEmailModel->addFlags('open'); $prospectEmailModel->addFlags('unsubscribe'); $prospectEmailModel->save(); $customerModel = new Customer(); $customerModel->fillFromDbPk($prospectEmailModel->customer_id); $customerModel->subscribed = 0; $customerModel->save(false); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Unsubscribe</title> <style type="text/css">
public static function setProspectSale($campaign_id, $customer_id) { $db = SafeMySQL::getInstance(); $sql = "SELECT email_id\n FROM prospect_emails\n WHERE campaign_id = ?i\n\t\t\t\tAND customer_id = ?i"; $result = $db->getOne($sql, $campaign_id, $customer_id); if (!empty($result)) { // We've got a prospect email order $prospectEmailModel = ProspectEmail::model()->fillFromDbPk($result); // did this customer actually use the link in the email if ($prospectEmailModel->isFlag('click')) { $prospectEmailModel->addFlags('sale'); $prospectEmailModel->save(); //$prospectEmailModel->removeProspect(); // this is handled in the WS process } } else { return false; } }