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; } }
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 }