Exemple #1
0
 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));
 }
Exemple #2
0
<?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);
Exemple #3
0
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'] = '';
Exemple #4
0
            $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);
}
Exemple #5
0
<?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">
Exemple #6
0
 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;
     }
 }