当前位置: 首页>>代码示例>>PHP>>正文


PHP Task::createSendTask方法代码示例

本文整理汇总了PHP中Task::createSendTask方法的典型用法代码示例。如果您正苦于以下问题:PHP Task::createSendTask方法的具体用法?PHP Task::createSendTask怎么用?PHP Task::createSendTask使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Task的用法示例。


在下文中一共展示了Task::createSendTask方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: run

 public function run()
 {
     $this->db->query("UPDATE " . DB_PREFIX . "customer c \r\n        SET congrats = 1 \r\n        WHERE DAY(birthday) <> '" . $this->db->escape(date('d')) . "' \r\n        AND MONTH(birthday) <> '" . $this->db->escape(date('m')) . "'");
     $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer c \r\n        WHERE DAY(birthday) = '" . $this->db->escape(date('d')) . "' \r\n        AND MONTH(birthday) = '" . $this->db->escape(date('m')) . "'\r\n        AND congrats = 1");
     if ($query->num_rows && (int) $this->config->get('marketing_email_happy_birthday')) {
         $params = array('job' => 'send_birthday', 'newsletter_id' => (int) $this->config->get('marketing_email_happy_birthday'));
         $this->load->library('task');
         $task = new Task($this->registry);
         $task->object_id = (int) $this->config->get('marketing_email_happy_birthday');
         $task->object_type = 'newsletter';
         $task->task = 'happy_birthday';
         $task->type = 'send';
         $task->time_exec = date('Y-m-d') . ' 08:00:00';
         $task->params = $params;
         $task->time_interval = "";
         $task->time_last_exec = "";
         $task->run_once = true;
         $task->status = 1;
         $task->date_start_exec = date('Y-m-d') . ' 08:00:00';
         $task->date_end_exec = date('Y-m-d') . ' 23:00:00';
         foreach ($query->rows as $customer) {
             $params = array('customer_id' => $customer['customer_id'], 'fullname' => $customer['firstname'] . " " . $customer['lastname'], 'company' => $customer['company'], 'rif' => $customer['rif'], 'telephone' => $customer['telephone'], 'email' => $customer['email']);
             $queue = array("params" => $params, "status" => 1, "time_exec" => date('Y-m-d') . ' 08:00:00');
             $task->addQueue($queue);
             $this->db->query("UPDATE " . DB_PREFIX . "customer c SET congrats = 0 WHERE customer_id = '" . (int) $customer['customer_id'] . "'");
         }
         $task->createSendTask();
     }
 }
开发者ID:josueaponte7,项目名称:necotienda_standalone,代码行数:29,代码来源:birthday.php

示例2: link2Campaign

 private function link2Campaign($campaign_id)
 {
     $this->load->auto('marleting/campaign');
     $this->load->auto('task');
     $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "contact c WHERE contact_id = '" . (int) $this->request->getQuery('contact_id') . "'");
     $contact_data = $query->row;
     $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "campaign c WHERE campaign_id = '" . (int) $campaign_id . "'");
     $campaign_data = $query->row;
     if ($campaign_data['newsletter_id']) {
         $campaign_data['name'] .= ' - Campaign Triggered';
         $campaign_data['date_start'] = $this->addMinute(15);
         $campaign_data['date_end'] = $this->addDay(2);
         $campaign_data['repeat'] = "";
         $campaign_data['contacts'][] = array('contact_id' => $contact_data['contact_id'], 'name' => $contact_data['name'], 'email' => $contact_data['email']);
     }
     $mail_server_id = $this->modelCampaign->getProperty((int) $campaign_id, 'mail_server', 'mail_server_id');
     $campaign_id = $this->modelCampaign->add($campaign_data);
     $this->modelCampaign->setProperty($campaign_id, 'mail_server', 'mail_server_id', $mail_server_id);
     $params = array('job' => 'send_campaign', 'campaign_id' => $campaign_id);
     $task = new Task($this->registry);
     $task->object_id = (int) $campaign_id;
     $task->object_type = 'campaign';
     $task->task = $campaign_data['name'];
     $task->type = 'send';
     $task->time_exec = date('Y-m-d H:i:s', strtotime($campaign_data['date_start']));
     $task->params = $params;
     $task->time_interval = $campaign_data['repeat'];
     $task->time_last_exec = $row['time_last_exec'];
     $task->run_once = !(bool) $campaign_data['repeat'];
     $task->status = 1;
     $task->date_start_exec = date('Y-m-d H:i:s', strtotime($campaign_data['date_start']));
     $task->date_end_exec = date('Y-m-d H:i:s', strtotime($campaign_data['date_end']));
     foreach ($campaign_data['contacts'] as $sort_order => $contact) {
         $params = array('contact_id' => $contact['contact_id'], 'name' => $contact['name'], 'email' => $contact['email'], 'campaign_id' => $campaign_id);
         $queue = array("params" => $params, "status" => 1, "time_exec" => date('Y-m-d H:i:s', strtotime($campaign_data['date_start'])));
         $task->addQueue($queue);
     }
     $task->createSendTask();
     $this->cache->set("campaign.html.{$campaign_id}", $htmlbody);
 }
开发者ID:josueaponte7,项目名称:necotienda_standalone,代码行数:40,代码来源:campaign.php

示例3: send

 public function send()
 {
     $htmlbody = html_entity_decode($this->cache->get("campaign.html.temp"));
     $htmlbody = str_replace('%7B', '{', $htmlbody);
     $htmlbody = str_replace('%7D', '}', $htmlbody);
     $data = unserialize($this->cache->get("campaign.data.temp"));
     $to = $data['to'];
     $campaign = $data['post'];
     $links = $data['links'];
     $campaign['contacts'] = $to;
     $campaign_id = $this->modelCampaign->add($campaign);
     $this->modelCampaign->setProperty($campaign_id, 'mail_server', 'mail_server_id', $campaign['mail_server_id']);
     $params = array('job' => 'send_campaign', 'campaign_id' => $campaign_id);
     $this->load->library('task');
     $task = new Task($this->registry);
     $task->object_id = (int) $campaign_id;
     $task->object_type = 'campaign';
     $task->task = $campaign['name'];
     $task->type = 'send';
     $task->time_exec = date('Y-m-d H:i:s', strtotime($campaign['date_start']));
     $task->params = $params;
     $task->time_interval = $campaign['repeat'];
     $task->time_last_exec = $row['time_last_exec'];
     $task->run_once = !(bool) $campaign['repeat'];
     $task->status = 1;
     $task->date_start_exec = date('Y-m-d H:i:s', strtotime($campaign['date_start']));
     $task->date_end_exec = date('Y-m-d H:i:s', strtotime($campaign['date_end']));
     foreach ($to as $sort_order => $contact) {
         foreach ($links as $link) {
             if (empty($link['url']) || empty($link['redirect'])) {
                 continue;
             }
             $link['url'] = str_replace('%7B', '{', $link['url']);
             $link['url'] = str_replace('%7D', '}', $link['url']);
             $link['url'] = str_replace('{%contact_id%}', $contact['contact_id'], $link['url']);
             $link['url'] = str_replace('{%campaign_id%}', $campaign_id, $link['url']);
             $this->modelCampaign->addLink($link, $campaign_id);
         }
         $params = array('contact_id' => $contact['contact_id'], 'name' => $contact['name'], 'email' => $contact['email'], 'campaign_id' => $campaign_id);
         $queue = array("params" => $params, "status" => 1, "time_exec" => date('Y-m-d H:i:s', strtotime($campaign['date_start'])));
         $htmlbody = str_replace('{%contact_id%}', $contact['contact_id'], $htmlbody);
         $htmlbody = str_replace('{%campaign_id%}', $campaign_id, $htmlbody);
         $this->cache->set("campaign.html.{$campaign_id}." . $contact['contact_id'], $htmlbody);
         $task->addQueue($queue);
     }
     $task->createSendTask();
     $this->cache->set("campaign.html.{$campaign_id}", $htmlbody);
     $this->session->set('success', $this->language->get('text_success'));
     $this->redirect(Url::createAdminUrl("marketing/campaign"));
 }
开发者ID:josueaponte7,项目名称:necotienda_standalone,代码行数:50,代码来源:campaign.php

示例4: invitefriends

 public function invitefriends()
 {
     if ($this->session->has('meliAccessToken')) {
         $token = json_decode($this->session->get('meliAccessToken'));
         $url = 'https://api.mercadolibre.com/users/me?access_token=' . $token->access_token;
         $response = $this->handler->fetch($url);
         $profile = json_decode($response['body'], true);
         if ($profile['error']) {
             $this->redirect($this->oauth_url);
         }
         $list = $this->db->query("SELECT * \n            FROM " . DB_PREFIX . "contact_list \n            WHERE name = 'Amigos de " . $this->db->escape(addslashes($profile['name'])) . " en Hotmail'");
         if ($list->num_rows) {
             $list_id = $list->row['contact_list_id'];
         } else {
             $this->db->query("INSERT INTO " . DB_PREFIX . "contact_list SET \n                name        = 'Amigos de " . $this->db->escape(addslashes($profile['name'])) . " en Hotmail',\n                description = 'Amigos de " . $this->db->escape(addslashes($profile['name'])) . " en Hotmail',\n                date_added  = NOW()");
             $list_id = $this->db->getLastId();
         }
         $url = 'https://api.mercadolibre.com/users/me?access_token=' . $token->access_token . '&limit=1000';
         $response = $this->handler->fetch($url);
         if ($response['body']) {
             $xml = json_decode($response['body'], true);
             if ($xml['error']) {
                 $this->redirect($this->oauth_url);
             }
             $to = array();
             $control = array();
             foreach ($xml['data'] as $emails) {
                 $contacts[] = array($emails['name'], $emails['emails']['preferred']);
                 $name = addslashes(str_replace("'", '', $emails['name']));
                 $email = $emails['emails']['preferred'];
                 if (empty($email)) {
                     continue;
                 }
                 $customer = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE email = '" . $this->db->escape($email) . "'");
                 $contact = $this->db->query("SELECT * FROM " . DB_PREFIX . "contact WHERE email = '" . $this->db->escape($email) . "'");
                 if (!$contact->rows) {
                     $this->db->query("INSERT INTO " . DB_PREFIX . "contact SET \n                              name        = '" . $this->db->escape($name) . "',\n                              email       = '" . $this->db->escape($email) . "', \n                              customer_id = '" . (int) $customer->row['customer_id'] . "',\n                              date_added  = NOW()");
                     $contact_id = $this->db->getLastId();
                     $this->db->query("INSERT INTO " . DB_PREFIX . "contact_to_list SET \n                            contact_id     = '" . (int) $contact_id . "',\n                            contact_list_id= '" . (int) $list_id . "',\n                            date_added    = NOW()");
                 }
                 if (!in_array($email, $control) && !empty($email)) {
                     $control[] = $email;
                     $to[] = array('contact_id' => (int) $contact_id, 'name' => $name, 'email' => $email);
                 }
             }
             if ($this->config->get('marketing_email_invite_friends')) {
                 $this->load->model('marketing/newsletter');
                 $newsletter = $this->modelNewsletter->getById($this->config->get('marketing_email_invite_friends'));
                 if ($newsletter) {
                     $dom = new DOMDocument();
                     $dom->preserveWhiteSpace = false;
                     $dom->loadHTML(html_entity_decode($newsletter['htmlbody']));
                     $trace_url = Url::createUrl("marketing/campaign/trace");
                     $trackEmail = $dom->createElement('img');
                     $trackEmail->setAttribute('src', $trace_url);
                     $dom->appendChild($trackEmail);
                     $data = array('newsletter_id' => $newsletter['newsletter_id'], 'name' => 'Invitar Amigos de ' . $this->db->escape(addslashes($profile['name'])) . ' en Hotmail', 'subject' => 'Hola', 'from_name' => $this->db->escape(addslashes($profile['name'])), 'from_email' => $this->db->escape($profile['email']), 'replyto_email' => $this->db->escape($this->config->get('config_email')), 'embed_image' => 0, 'trace_email' => 1, 'trace_click' => 0, 'contacts' => $to, 'repeat' => 'no_repeat', 'date_start' => date('Y-m-d h:i:s'), 'date_end' => date('Y-m-d h:i:s'), 'date_added' => date('Y-m-d h:i:s'));
                     $this->load->model('marketing/campaign');
                     $campaign_id = $this->modelCampaign->add($data);
                     $params = array('job' => 'send_campaign', 'campaign_id' => $campaign_id);
                     $this->load->library('task');
                     $task = new Task($this->registry);
                     $task->object_id = (int) $campaign_id;
                     $task->object_type = 'campaign';
                     $task->task = $campaign['name'];
                     $task->type = 'send';
                     $task->time_exec = date('Y-m-d H:i:s');
                     $task->params = $params;
                     $task->time_interval = 'no-repeat';
                     $task->time_last_exec = date('Y-m-d H:i:s');
                     $task->run_once = true;
                     $task->status = 1;
                     $task->date_start_exec = date('Y-m-d H:i:s');
                     $task->date_end_exec = date('Y-m-d H:i:s');
                     $task->addMinute(15);
                     $control = array();
                     foreach ($to as $sort_order => $contact) {
                         if (in_array($contact['email'], $control)) {
                             continue;
                         }
                         $control[] = $contact['email'];
                         $params = array('contact_id' => $contact['contact_id'], 'name' => $contact['name'], 'email' => $contact['email'], 'campaign_id' => $campaign_id);
                         $queue = array("params" => $params, "status" => 1, "time_exec" => date('Y-m-d H:i:s'));
                         $task->addQueue($queue);
                     }
                     $task->createSendTask();
                 }
                 $this->session->set('success', $this->language->get('text_friends_invited_success'));
                 if ($this->session->has('redirect')) {
                     $this->redirect($this->session->get('rediret'));
                 } else {
                     $this->redirect(HTTP_HOME);
                 }
             }
         }
     } else {
         $this->redirect($this->oauth_url);
     }
 }
开发者ID:josueaponte7,项目名称:necotienda_standalone,代码行数:99,代码来源:paypal.php

示例5: run

 public function run()
 {
     $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "stat s \r\n        LEFT JOIN " . DB_PREFIX . "customer c ON (s.customer_id=c.customer_id) \r\n        LEFT JOIN " . DB_PREFIX . "product p ON (s.object_id=p.product_id) \r\n        LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id=pd.product_id) \r\n        WHERE DAY(s.date_added) = '" . $this->db->escape(date('d')) . "' \r\n            AND MONTH(s.date_added) = '" . $this->db->escape(date('m')) . "'\r\n            AND YEAR(s.date_added) = '" . $this->db->escape(date('Y')) . "'\r\n            AND s.object_type = 'product'\r\n            AND s.status = 1\r\n            AND s.customer_id <> 0\r\n            AND pd.language_id = 1\r\n        GROUP BY s.customer_id\r\n        LIMIT 40");
     if ($query->num_rows && (int) $this->config->get('marketing_email_recommended_products')) {
         $this->load->library('tax');
         $this->load->library('currency');
         $this->load->library('image');
         $this->load->library('url');
         $this->tax = new Tax($this->registry);
         $this->currency = new Currency($this->registry);
         $products = array();
         foreach ($query->rows as $product) {
             $image = !empty($product['image']) ? $product['image'] : 'no_image.jpg';
             $price = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')), '', '', false);
             $products[] = array('product_id' => $product['product_id'], 'name' => $product['name'], 'image' => NTImage::resizeAndSave($image, 150, 150), 'model' => $product['model'], 'href' => Url::createUrl('store/product', array('product_id' => $product['product_id'])));
         }
         $params = array('job' => 'send_recommended_products', 'newsletter_id' => (int) $this->config->get('marketing_email_recommended_products'));
         $this->load->library('task');
         $task = new Task($this->registry);
         $task->object_id = (int) $this->config->get('marketing_email_recommended_products');
         $task->object_type = 'newsletter';
         $task->task = 'recommended_products';
         $task->type = 'send';
         $task->time_exec = date('Y-m-d') . ' 08:00:00';
         $task->params = $params;
         $task->time_interval = "";
         $task->time_last_exec = "";
         $task->run_once = true;
         $task->status = 1;
         $task->date_start_exec = date('Y-m-d') . ' 08:00:00';
         $task->date_end_exec = date('Y-m-d') . ' 23:00:00';
         foreach ($query->rows as $customer) {
             $params = array('customer_id' => $customer['customer_id'], 'fullname' => $customer['firstname'] . " " . $customer['lastname'], 'company' => $customer['company'], 'rif' => $customer['rif'], 'telephone' => $customer['telephone'], 'email' => $customer['email'], 'products' => $products);
             $queue = array("params" => $params, "status" => 1, "time_exec" => date('Y-m-d') . ' 08:00:00');
             $task->addQueue($queue);
             $this->db->query("UPDATE " . DB_PREFIX . "stat SET status = 0 \r\n                WHERE customer_id = '" . (int) $product['customer_id'] . "'\r\n                    AND DAY(date_added) = '" . $this->db->escape(date('d')) . "' \r\n                    AND MONTH(date_added) = '" . $this->db->escape(date('m')) . "'\r\n                    AND YEAR(date_added) = '" . $this->db->escape(date('Y')) . "'");
         }
         $task->createSendTask();
     }
 }
开发者ID:josueaponte7,项目名称:necotienda_standalone,代码行数:40,代码来源:promoter.php

示例6: promote


//.........这里部分代码省略.........
                 $contact = $this->db->query("SELECT * FROM " . DB_PREFIX . "contact WHERE email = '" . $this->db->escape($email) . "'");
                 if (!$contact->row) {
                     $this->db->query("INSERT INTO " . DB_PREFIX . "contact SET \n                              name        = '" . $this->db->escape($name) . "',\n                              email       = '" . $this->db->escape($email) . "', \n                              customer_id = '" . (int) $customer->row['customer_id'] . "',\n                              date_added  = NOW()");
                     $contact_id = $this->db->getLastId();
                     $this->db->query("INSERT INTO " . DB_PREFIX . "contact_to_list SET \n                            contact_id     = '" . (int) $contact_id . "',\n                            contact_list_id= '" . (int) $list_id . "',\n                            date_added    = NOW()");
                 } else {
                     $contact_id = $contact->row['contact_id'];
                 }
                 if (!in_array($email, $control) && !empty($email)) {
                     $control[] = $email;
                     $to[] = array('contact_id' => (int) $contact_id, 'name' => $name, 'email' => $email);
                 }
             }
             if ($this->config->get('marketing_email_promote_product')) {
                 $this->load->model('marketing/newsletter');
                 $product = array();
                 $product_id = $this->request->hasQuery('product_id') ? $this->request->getQuery('product_id') : $this->session->get('promote_product_id');
                 $this->session->set('promote_product_id', $product_id);
                 if ($product_id) {
                     $product_id;
                     $this->load->model('store/product');
                     $product = $this->modelProduct->getProduct($product_id);
                     if ($product) {
                         $this->load->model('store/product');
                         $Url = new Url($this->registry);
                         //Libs
                         $this->load->auto('image');
                         $this->load->auto('currency');
                         $this->load->auto('tax');
                         $product['url'] = $Url::createUrl('store/product', array('product_id' => $product['product_id']));
                         $image = isset($product['image']) ? $product['image'] : 'no_image.jpg';
                         $product['image'] = NTImage::resizeAndSave($image, $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'));
                         $discount = $this->modelProduct->getProductDiscount($product['product_id']);
                         if ($discount) {
                             $product['price'] = $this->currency->format($this->tax->calculate($discount, $product['tax_class_id'], $this->config->get('config_tax')));
                         } else {
                             $product['price'] = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')));
                             $special = $this->modelProduct->getProductSpecial($product['product_id']);
                             if ($special) {
                                 $product['special'] = $this->currency->format($this->tax->calculate($special, $product['tax_class_id'], $this->config->get('config_tax')));
                             }
                         }
                         $discounts = $this->modelProduct->getProductDiscounts($product['product_id']);
                         foreach ($discounts as $k => $discount) {
                             $product['discounts'][$k] = array('quantity' => $discount['quantity'], 'price' => $this->currency->format($this->tax->calculate($discount['price'], $product['tax_class_id'], $this->config->get('config_tax'))));
                         }
                         $results = $this->modelProduct->getProductImages($product['product_id']);
                         foreach ($results as $k => $result) {
                             $product['images'][$k] = array('thumb' => NTImage::resizeAndSave($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')));
                         }
                         $results = $this->modelProduct->getProductTags($product['product_id']);
                         foreach ($results as $k => $result) {
                             if ($result['tag']) {
                                 $product['tags'][$k] = array('tag' => $result['tag'], 'href' => $Url::createUrl('store/search', array('q' => $result['tag'])));
                             }
                         }
                         $fullname = $profile['name'] ? addslashes($profile['name']) : $this->config->get('config_title');
                         $newsletter = $this->modelNewsletter->getById($this->config->get('marketing_email_promote_product'));
                         if ($newsletter) {
                             $data = array('newsletter_id' => $newsletter['newsletter_id'], 'name' => "Invitar Amigos de " . $this->db->escape(addslashes($profile['name'])) . " (" . $this->db->escape(addslashes($profile['emails']['preferred'])) . ") en Outlook", 'subject' => 'Hola', 'from_name' => $this->db->escape($fullname), 'from_email' => $this->db->escape($this->config->get('config_email')), 'replyto_email' => $this->db->escape($this->config->get('config_email')), 'embed_image' => 0, 'trace_email' => 1, 'trace_click' => 0, 'contacts' => $to, 'repeat' => 'no_repeat', 'date_start' => date('Y-m-d h:i:s'), 'date_end' => date('Y-m-d h:i:s'), 'date_added' => date('Y-m-d h:i:s'));
                             $this->load->model('marketing/campaign');
                             $campaign_id = $this->modelCampaign->add($data);
                             $params = array('job' => 'send_campaign', 'product_id' => $product_id, 'campaign_id' => $campaign_id);
                             $this->load->library('task');
                             $task = new Task($this->registry);
                             $task->object_id = (int) $campaign_id;
                             $task->object_type = 'campaign';
                             $task->task = $campaign['name'];
                             $task->type = 'send';
                             $task->time_exec = date('Y-m-d H:i:s');
                             $task->params = $params;
                             $task->time_interval = 'no-repeat';
                             $task->time_last_exec = date('Y-m-d H:i:s');
                             $task->run_once = true;
                             $task->status = 1;
                             $task->date_start_exec = date('Y-m-d H:i:s');
                             $task->date_end_exec = date('Y-m-d H:i:s');
                             $task->addMinute(15);
                             $control = array();
                             foreach ($to as $sort_order => $contact) {
                                 if (in_array($contact['email'], $control)) {
                                     continue;
                                 }
                                 $control[] = $contact['email'];
                                 $params = array('contact_id' => $contact['contact_id'], 'name' => $contact['name'], 'email' => $contact['email'], 'product' => $product, 'campaign_id' => $campaign_id);
                                 $queue = array("params" => $params, "status" => 1, "time_exec" => date('Y-m-d H:i:s'));
                                 $task->addQueue($queue);
                             }
                             $task->createSendTask();
                         }
                     }
                 }
                 $this->session->set('success', $this->language->get('text_promote_product_success'));
             }
             $this->redirect($Url::createUrl('store/product', array('product_id' => $product['product_id'])));
         }
     } else {
         $this->redirect($this->oauth_url);
     }
 }
开发者ID:josueaponte7,项目名称:necotienda_standalone,代码行数:101,代码来源:live.php

示例7: promote


//.........这里部分代码省略.........
                 $customer = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE email = '" . $this->db->escape($email) . "'");
                 $contact = $this->db->query("SELECT * FROM " . DB_PREFIX . "contact WHERE email = '" . $this->db->escape($email) . "'");
                 if (!$contact->row) {
                     $this->db->query("INSERT INTO " . DB_PREFIX . "contact SET \n                              name        = '" . $this->db->escape($name) . "',\n                              email       = '" . $this->db->escape($email) . "', \n                              customer_id = '" . (int) $customer->row['customer_id'] . "',\n                              date_added  = NOW()");
                     $contact_id = $this->db->getLastId();
                     $this->db->query("INSERT INTO " . DB_PREFIX . "contact_to_list SET \n                            contact_id     = '" . (int) $contact_id . "',\n                            contact_list_id= '" . (int) $list_id . "',\n                            date_added    = NOW()");
                 } else {
                     $contact_id = $contact->row['contact_id'];
                 }
                 if (!in_array($email, $control) && !empty($email)) {
                     $control[] = $email;
                     $to[] = array('contact_id' => $contact_id, 'name' => $name, 'email' => $email);
                 }
             }
         }
         if ($this->config->get('marketing_email_promote_product')) {
             $this->load->model('marketing/newsletter');
             $product = array();
             $product_id = $this->request->hasQuery('product_id') ? $this->request->getQuery('product_id') : $this->session->get('promote_product_id');
             $this->session->set('promote_product_id', $product_id);
             if ($product_id) {
                 $this->load->model('store/product');
                 $product = $this->modelProduct->getProduct($product_id);
                 if ($product) {
                     $this->load->model('store/product');
                     $Url = new Url($this->registry);
                     //Libs
                     $this->load->auto('image');
                     $this->load->auto('currency');
                     $this->load->auto('tax');
                     $product['url'] = $Url::createUrl('store/product', array('product_id' => $product['product_id']));
                     $image = isset($product['image']) ? $product['image'] : 'no_image.jpg';
                     $product['image'] = NTImage::resizeAndSave($image, $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'));
                     $discount = $this->modelProduct->getProductDiscount($product['product_id']);
                     if ($discount) {
                         $product['price'] = $this->currency->format($this->tax->calculate($discount, $product['tax_class_id'], $this->config->get('config_tax')));
                     } else {
                         $product['price'] = $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')));
                         $special = $this->modelProduct->getProductSpecial($product['product_id']);
                         if ($special) {
                             $product['special'] = $this->currency->format($this->tax->calculate($special, $product['tax_class_id'], $this->config->get('config_tax')));
                         }
                     }
                     $discounts = $this->modelProduct->getProductDiscounts($product['product_id']);
                     foreach ($discounts as $k => $discount) {
                         $product['discounts'][$k] = array('quantity' => $discount['quantity'], 'price' => $this->currency->format($this->tax->calculate($discount['price'], $product['tax_class_id'], $this->config->get('config_tax'))));
                     }
                     $results = $this->modelProduct->getProductImages($product['product_id']);
                     foreach ($results as $k => $result) {
                         $product['images'][$k] = array('thumb' => NTImage::resizeAndSave($result['image'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')));
                     }
                     $results = $this->modelProduct->getProductTags($product['product_id']);
                     foreach ($results as $k => $result) {
                         if ($result['tag']) {
                             $product['tags'][$k] = array('tag' => $result['tag'], 'href' => $Url::createUrl('store/search', array('q' => $result['tag'])));
                         }
                     }
                     $fullname = $userInfo->name ? addslashes($userInfo->name) : $this->config->get('config_title');
                     $newsletter = $this->modelNewsletter->getById($this->config->get('marketing_email_promote_product'));
                     if ($newsletter) {
                         $data = array('newsletter_id' => $newsletter['newsletter_id'], 'name' => "Invitar Amigos de " . $this->db->escape(addslashes($userInfo->name)) . " (" . $this->db->escape(addslashes($userInfo->email)) . ") en Google", 'subject' => 'Hola', 'from_name' => $this->db->escape($fullname), 'from_email' => $this->db->escape($this->config->get('config_email')), 'replyto_email' => $this->db->escape($this->config->get('config_email')), 'embed_image' => 0, 'trace_email' => 1, 'trace_click' => 0, 'contacts' => $to, 'repeat' => 'no_repeat', 'date_start' => date('Y-m-d h:i:s'), 'date_end' => date('Y-m-d h:i:s'), 'date_added' => date('Y-m-d h:i:s'));
                         $this->load->model('marketing/campaign');
                         $campaign_id = $this->modelCampaign->add($data);
                         $params = array('job' => 'send_campaign', 'product_id' => $product_id, 'campaign_id' => $campaign_id);
                         $this->load->library('task');
                         $task = new Task($this->registry);
                         $task->object_id = (int) $campaign_id;
                         $task->object_type = 'campaign';
                         $task->task = $campaign['name'];
                         $task->type = 'send';
                         $task->time_exec = date('Y-m-d H:i:s');
                         $task->params = $params;
                         $task->time_interval = 'no-repeat';
                         $task->time_last_exec = date('Y-m-d H:i:s');
                         $task->run_once = true;
                         $task->status = 1;
                         $task->date_start_exec = date('Y-m-d H:i:s');
                         $task->date_end_exec = date('Y-m-d H:i:s');
                         $task->addMinute(15);
                         $control = array();
                         foreach ($to as $sort_order => $contact) {
                             if (in_array($contact['email'], $control)) {
                                 continue;
                             }
                             $control[] = $contact['email'];
                             $params = array('contact_id' => $contact['contact_id'], 'name' => $contact['name'], 'email' => $contact['email'], 'product' => $product, 'campaign_id' => $campaign_id);
                             $queue = array("params" => $params, "status" => 1, "time_exec" => date('Y-m-d H:i:s'));
                             $task->addQueue($queue);
                         }
                         $task->createSendTask();
                     }
                 }
             }
             $this->session->set('success', $this->language->get('text_promote_product_success'));
         }
         $this->redirect($Url::createUrl('store/product', array('product_id' => $product['product_id'])));
     } else {
         $this->redirect($this->oauth_url);
     }
 }
开发者ID:josueaponte7,项目名称:necotienda_standalone,代码行数:101,代码来源:google.php


注:本文中的Task::createSendTask方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。