Пример #1
0
 protected function emailBuyersByItem($user_id, $item_id, $connection_id, $subject, $message, $include_download = false)
 {
     $item_details = $this->getItem($item_id);
     if ($item_details['user_id'] == $user_id) {
         $merge_vars = null;
         $global_merge_vars = array(array('name' => 'itemname', 'content' => $item_details['name']), array('name' => 'itemdescription', 'content' => $item_details['description']));
         $user_request = new CASHRequest(array('cash_request_type' => 'people', 'cash_action' => 'getuser', 'user_id' => $user_id));
         $user_details = $user_request->response['payload'];
         if ($user_details['display_name'] == 'Anonymous' || !$user_details['display_name']) {
             $user_details['display_name'] = $user_details['email_address'];
         }
         $recipients = array();
         $tmp_recipients = array();
         $all_orders = $this->getOrdersByItem($user_id, $item_id);
         foreach ($all_orders as $order) {
             $tmp_recipients[] = $order['customer_email'];
         }
         $tmp_recipients = array_unique($tmp_recipients);
         foreach ($tmp_recipients as $email) {
             $recipients[] = array('email' => $email);
         }
         if (count($recipients)) {
             if (file_exists(CASH_PLATFORM_ROOT . '/lib/markdown/markdown.php')) {
                 include_once CASH_PLATFORM_ROOT . '/lib/markdown/markdown.php';
             }
             $html_message = Markdown($message);
             if ($include_download) {
                 $asset_request = new CASHRequest(array('cash_request_type' => 'asset', 'cash_action' => 'getasset', 'id' => $item_details['fulfillment_asset']));
                 if ($asset_request->response['payload']) {
                     $unlock_suffix = 1;
                     $all_assets = array();
                     if ($asset_request->response['payload']['type'] == 'file') {
                         $message .= "\n\n" . 'Download *|ITEMNAME|* at ' . CASH_PUBLIC_URL . '/download/?code=*|UNLOCKCODE1|*';
                         $html_message .= "\n\n" . '<p><b><a href="' . CASH_PUBLIC_URL . '/download/?code=*|UNLOCKCODE1|*">Download *|ITEMNAME|*</a></b></p>';
                         $all_assets[] = array('id' => $item_details['fulfillment_asset'], 'name' => $asset_request->response['payload']['title']);
                     } else {
                         $message .= "\n\n" . '*|ITEMNAME|*:' . "\n\n";
                         $html_message .= "\n\n" . '<p><b>*|ITEMNAME|*:</b></p>';
                         $fulfillment_request = new CASHRequest(array('cash_request_type' => 'asset', 'cash_action' => 'getfulfillmentassets', 'asset_details' => $asset_request->response['payload']));
                         if ($fulfillment_request->response['payload']) {
                             foreach ($fulfillment_request->response['payload'] as $asset) {
                                 $all_assets[] = array('id' => $asset['id'], 'name' => $asset['title']);
                                 $message .= "\n\n" . 'Download *|ASSETNAME' . $unlock_suffix . '|* at ' . CASH_PUBLIC_URL . '/download/?code=*|UNLOCKCODE' . $unlock_suffix . '|*';
                                 $html_message .= "\n\n" . '<p><b><a href="' . CASH_PUBLIC_URL . '/download/?code=*|UNLOCKCODE' . $unlock_suffix . '|*">Download *|ASSETNAME' . $unlock_suffix . '|*</a></b></p>';
                                 $unlock_suffix++;
                             }
                         }
                     }
                     $merge_vars = array();
                     $all_vars = array();
                     $unlock_suffix = 1;
                     foreach ($recipients as $recipient) {
                         foreach ($all_assets as $asset) {
                             $addcode_request = new CASHRequest(array('cash_request_type' => 'asset', 'cash_action' => 'addlockcode', 'asset_id' => $asset['id']));
                             $all_vars[] = array('name' => 'assetname' . $unlock_suffix, 'content' => $asset['name']);
                             $all_vars[] = array('name' => 'unlockcode' . $unlock_suffix, 'content' => $addcode_request->response['payload']);
                             $unlock_suffix++;
                         }
                         if ($addcode_request->response['payload']) {
                             $merge_vars[] = array('rcpt' => $recipient['email'], 'vars' => $all_vars);
                         }
                         $all_vars = array();
                         $unlock_suffix = 1;
                     }
                 }
             }
             $mandrill = new MandrillSeed($user_id, $connection_id);
             $result = $mandrill->send($subject, $message, $html_message, $user_details['email_address'], $user_details['display_name'], $recipients, null, $global_merge_vars, $merge_vars);
             return $result;
         }
     } else {
         return false;
     }
 }
Пример #2
0
 protected function sendMailing($mailing_id, $user_id = false)
 {
     $mailing = $this->getMailing($mailing_id, $user_id);
     if ($mailing) {
         if ($mailing['send_date'] == 0) {
             $list_request = new CASHRequest(array('cash_request_type' => 'people', 'cash_action' => 'viewlist', 'list_id' => $mailing['list_id'], 'user_id' => $mailing['user_id'], 'unlimited' => true));
             $list_details = $list_request->response['payload'];
             if (is_array($list_details)) {
                 $recipients = array();
                 foreach ($list_details['members'] as $subscriber) {
                     if ($subscriber['active']) {
                         if ($subscriber['display_name'] == 'Anonymous' || $subscriber['display_name'] == '') {
                             $subscriber['display_name'] = $subscriber['email_address'];
                         }
                         $recipients[] = array('email' => $subscriber['email_address'], 'name' => $subscriber['display_name'], 'metadata' => array('user_id' => $subscriber['id']));
                     }
                 }
                 $user_request = new CASHRequest(array('cash_request_type' => 'people', 'cash_action' => 'getuser', 'user_id' => $mailing['user_id']));
                 $user_details = $user_request->response['payload'];
                 if (!$mailing['from_name']) {
                     $mailing['from_name'] = $user_details['email_address'];
                 }
                 $mandrill = new MandrillSeed($user_id, $mailing['connection_id']);
                 $result = $mandrill->send($mailing['subject'], $mailing['text_content'], $mailing['html_content'], $user_details['email_address'], $mailing['from_name'], $recipients, array('mailing_id' => $mailing_id, 'list_id' => $mailing['list_id']));
                 // error_log(print_r($result,true));
                 $this->editMailing($mailing_id, time());
                 $this->addToMailingAnalytics($mailing_id, count($recipients));
                 if (is_array($result)) {
                     if (isset($result['status'])) {
                         if ($result['status'] == 'error') {
                             return false;
                         }
                     }
                 }
                 return true;
             }
         }
     }
     return false;
     // no return this far? return false
 }