attendee->event_id,
$data->event->event_identifier,
$data->attendee->registration_id,
$data->attendee->fname,
$data->attendee->lname,
$data->event->venue_phone,
$data->event->event_name,
$data->event->event_name,
$data->event->event_desc,
$data->event_link,
$data->event_url,
$data->event->virtual_url,
$data->event->virtual_phone,
//Venue information
$data->event->venue_name,
$data->event->venue_url,
$data->event->venue_image,
$data->event->venue_phone,
//Payment details
$data->attendee->txn_id,
$org_options['currency_symbol'] . espresso_attendee_price(array('registration_id' => $data->attendee->registration_id, 'session_total' => true)),
$org_options['currency_symbol'] . espresso_attendee_price(array('registration_id' => $data->attendee->registration_id, 'session_total' => true)),
$data->attendee->price_option,
$data->ticket_link,
$data->event->alt_email == '' ? $org_options['contact_email'] : $data->event->alt_email,
//Organization details
$org_options['organization'],
$org_options['organization_street1'],
$org_options['organization_street2'],
$org_options['organization_city'],
$org_options['organization_state'],
$org_options['organization_zip'],
$data->payment_link,
$data->invoice_link,
event_date_display($data->attendee->start_date),
event_date_display($data->attendee->event_time, get_option('time_format')),
event_date_display($data->attendee->end_date),
event_date_display($data->attendee->end_time, get_option('time_format')),
$data->location,
$data->event->venue_phone,
$data->google_map_link,
$data->table_open . $data->table_heading . $data->event_table . $data->table_close,
$data->email_questions,
$data->qr_code,
$data->edit_attendee
);
return str_replace($SearchValues, $ReplaceValues, $message);
}
function prepare_email_data($attendee_id, $multi_reg) {
global $wpdb, $org_options;
$data = new stdClass;
$data->multi_reg = $multi_reg;
//Get the event record
$sql = "SELECT ed.* ";
isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y' ? $sql .= ", v.name venue_name, v.address venue_address, v.city venue_city, v.state venue_state, v.zip venue_zip, v.country venue_country, v.meta venue_meta " : '';
$sql .= " FROM " . EVENTS_DETAIL_TABLE . " ed ";
isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y' ? $sql .= " LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " r ON r.event_id = ed.id LEFT JOIN " . EVENTS_VENUE_TABLE . " v ON v.id = r.venue_id " : '';
$sql .= " JOIN " . EVENTS_ATTENDEE_TABLE . " ea ON ea.event_id=ed.id ";
$sql .= " WHERE ea.id = '" . $attendee_id . "' ";
$data->event = $wpdb->get_row($sql, OBJECT);
//Get the attendee record
$sql = "SELECT ea.* FROM " . EVENTS_ATTENDEE_TABLE . " ea WHERE ea.id = '" . $attendee_id . "' ";
$data->attendee = $wpdb->get_row($sql, OBJECT);
//Get the primary/first attendee
$data->primary_attendee = espresso_is_primary_attendee($data->attendee->id) == true ? true : false;
//Venue information
if (isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y') {
$data->event->venue_name = $data->event->venue_name;
$data->event->address = $data->event->venue_address;
$data->event->address2 = $data->event->venue_address2;
$data->event->city = $data->event->venue_city;
$data->event->state = $data->event->venue_state;
$data->event->zip = $data->event->venue_zip;
$data->event->country = $data->event->venue_country;
} else {
$data->event->venue_name = $data->event->venue_title;
}
$data->table_open = '
';
$data->table_heading = "| " . __('Event Name', 'event_espresso') . " | " . __('Date', 'event_espresso') . " | " . __('Time', 'event_espresso') . " | " . __('Location', 'event_espresso') . " |
";
$data->table_close = "
";
if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/template.php")) {
if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/functions.php")) {
include_once(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/functions.php");
$data->qr_code = espresso_qr_code(array('attendee_id' => $data->attendee->id, 'event_name' => stripslashes_deep($data->event->event_name), 'attendee_first' => $data->attendee->fname, 'attendee_last' => $data->attendee->lname, 'registration_id' => $data->attendee->registration_id, 'event_code' => $data->event->event_code, 'ticket_type' => $data->attendee->price_option, 'event_time' => $data->attendee->event_time, 'amount_pd' => espresso_attendee_price(array('registration_id' => $data->attendee->registration_id, 'reg_total' => true))));
}
$data->ticket_link = espresso_ticket_links($data->attendee->registration_id, $data->attendee->id);
$data->admin_ticket_link = $data->ticket_link;
} else {
$data->qr_code = '';
$data->ticket_link = '';
$data->admin_ticket_link = '';
}
$data->location = ($data->event->address != '' ? $data->event->address : '') . ($data->event->address2 != '' ? '
' . $data->event->address2 : '') . ($data->event->city != '' ? '
' . $data->event->city : '') . ($data->event->state != '' ? ', ' . $data->event->state : '') . ($data->event->zip != '' ? '
' . $data->event->zip : '') . ($data->event->country != '' ? '
' . $data->event->country : '');
$data->google_map_link = espresso_google_map_link(array('address' => $data->event->address, 'city' => $data->event->city, 'state' => $data->event->state, 'zip' => $data->event->zip, 'country' => $data->event->country));
$data->event_url = espresso_reg_url($data->event->id);
$data->event_link = '' . stripslashes_deep($data->event->event_name) . '';
if (!isset($data->event->venue_name))
$data->event->venue_name = '';
$data->event_table .= "
| " . stripslashes_deep($data->event->event_name) . " | " . $data->attendee->price_option . " |
" . event_date_display($data->attendee->start_date) . ' - ' . event_date_display($data->attendee->end_date) . " |
" . event_date_display($data->attendee->event_time, get_option('time_format')) . " - " . event_date_display($data->attendee->end_time, get_option('time_format')) . " |
" . $data->event->venue_name . " $data->location $data->google_map_link | " .
($data->attendee->quantity > 0 ? '' . $data->attendee->quantity . __(' attendees', 'event_espresso') . ' | ' : '') .
"
";
if (function_exists('event_espresso_custom_questions_output')) {
//Create the question display
$email_questions_r = event_espresso_custom_questions_output(array('attendee_id' => $data->attendee->id, 'all_questions' => TRUE));
if ($email_questions_r != '')
$data->email_questions = '| ' . $email_questions_r . ' |
';
$data->event_table .= $data->email_questions;
}
$payment_url = get_option('siteurl') . "/?page_id=" . $org_options['return_url'] . "®istration_id=" . $data->attendee->registration_id . "&id=" . $data->attendee->id;
$data->payment_link = '' . __('View Your Payment Details') . '';
$data->invoice_link = '' . __('Download PDF Invoice', 'event_espresso') . '';
$data->edit_attendee = espresso_edit_attendee($data->attendee->registration_id, $data->attendee->id, $data->attendee->event_id, 'attendee', 'Edit Registration Details');
return $data;
}
function prepare_email($data) {
global $org_options;
$email_subject = !$data->multi_reg ? $data->event->event_name : $org_options['organization'] . __(' registration confirmation', 'event_espresso');
if ($data->event->email_id > 0 && $data->event->send_mail == 'Y') {
$email_data = array();
$email_data = espresso_email_message($data->event->email_id);
$conf_mail = $email_data['email_text'];
$email_subject = $email_data['email_subject'];
} elseif ($data->event->conf_mail != '' && $data->event->send_mail == 'Y') {
$conf_mail = $data->event->conf_mail;
} else {
$conf_mail = $org_options['message'];
}
$email_subject = replace_shortcodes($email_subject, $data);
$_replaced = replace_shortcodes($conf_mail, $data);
$message_top = "";
$message_bottom = "";
$email_body = $message_top . $_replaced . $message_bottom;
if (!isset($headers))
$headers = '';
return array(
'send_to' => $data->attendee->email,
'email_subject' => $email_subject,
'email_body' => $email_body,
'headers' => $headers
);
}
function prepare_admin_email($data) {
global $org_options;
$admin_attendee_link = espresso_edit_attendee($data->attendee->registration_id, $data->attendee->id, $data->attendee->event_id, 'admin', $data->attendee->fname . ' ' . $data->attendee->lname);
if ($data->attendee->quantity > 0 && !$data->multi_reg)
$primary_attendee = $data->primary_attendee == true ? "" . __('Primary Attendee', 'event_espresso') . "
" : '';
$admin_message = "" . __('Registration Summary:', 'event_espresso') . "
";
$admin_email_body = "
| $primary_attendee $admin_attendee_link |
" . $data->attendee->email . " |
" . stripslashes_deep($data->event->event_name) . " | " . $data->attendee->price_option . " |
" . event_date_display($data->attendee->start_date) . ' - ' . event_date_display($data->attendee->end_date) . " |
" . event_date_display($data->attendee->event_time, get_option('time_format')) . " - " . event_date_display($data->attendee->end_time, get_option('time_format')) . " | " .
($data->attendee->quantity > 0 ? '' . $data->attendee->quantity . __(' attendee(s)', 'event_espresso') . ' | ' : '') . "
";
$admin_additional_info = "" . __('Additional Information:', 'event_espresso') . "
";
if (!empty($data->email_questions)) {
$admin_additional_info .= $data->email_questions;
}
if (!empty($data->admin_ticket_link)) {
$admin_additional_info .= '' . __('Ticket(s):', 'event_espresso') . '
';
$admin_additional_info .= $data->admin_ticket_link;
}
if (!empty($data->invoice_link)) {
$admin_additional_info .= '' . __('Invoice:', 'event_espresso') . '
';
$admin_additional_info .= $data->invoice_link;
$admin_additional_info .= '
';
}
$headers = '';
return array(
'send_to' => $data->event->alt_email == '' ? $org_options['contact_email'] : $data->event->alt_email . ',' . $org_options['contact_email'],
'email_subject' => !$data->multi_reg ? $data->event->event_name . __(' registration confirmation', 'event_espresso') : __('Event Registration Notification', 'event_espresso'),
'email_body' => $admin_message . $data->table_open . $admin_email_body . $data->table_close . $admin_additional_info,
'headers' => $headers
);
}
function email_by_attendee_id($attendee_id, $send_attendee_email = TRUE, $send_admin_email = TRUE, $multi_reg = FALSE) {
$data = prepare_email_data($attendee_id, $multi_reg);
if ($send_attendee_email == 'true') {
$email_params = prepare_email($data);
event_espresso_send_email($email_params);
}
if ($send_admin_email == 'true') {
$email_params = prepare_admin_email($data);
event_espresso_send_email($email_params);
}
}
if (!function_exists('event_espresso_email_confirmations')) {
function event_espresso_email_confirmations($atts) {
/**
*
* going to be rewriting this. it takes 3 kinds of ids
* if it gets an attendee id, it should email that single attendee
* if it gets a registration id, it should email all the attendees of that registration
* if it gets a session id, it should find all the emails in that session, find all the events for each email address, and email the accumulated details to each email addresse
*/
global $wpdb;
extract($atts);
//print_r($atts);
if (empty($multi_reg))
$multi_reg = FALSE;
if (empty($send_admin_email))
$send_admin_email = FALSE;
if (empty($send_attendee_email))
$send_attendee_email = FALSE;
if (!empty($attendee_id) && $multi_reg == FALSE) {
email_by_attendee_id($attendee_id, $send_attendee_email, $send_admin_email, $multi_reg);
} elseif (!empty($registration_id) && $multi_reg == FALSE) {
$sql = "SELECT id FROM " . EVENTS_ATTENDEE_TABLE . " WHERE registration_id = '" . $registration_id . "'";
$attendees = $wpdb->get_col($sql);
foreach ($attendees as $attendee_id) {
email_by_attendee_id($attendee_id, $send_attendee_email, $send_admin_email, $multi_reg);
}
} elseif (!empty($session_id)) {
$sql = "SELECT id FROM " . EVENTS_ATTENDEE_TABLE . " WHERE attendee_session = '" . $session_id . "'";
$attendees = $wpdb->get_col($sql);
foreach ($attendees as $attendee_id) {
email_by_attendee_id($attendee_id, $send_attendee_email, $send_admin_email, $multi_reg);
}
}
}
}
//Email sender
if (!function_exists('event_espresso_send_email')) {
function event_espresso_send_email($params) {
global $org_options;
extract($params);
//Define email headers
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: " . $org_options['contact_email'] . "\r\n";
$headers .= "Reply-To: " . $org_options['contact_email'] . "\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
//Debug
/*echo '
';
echo '$headers = '.$headers.'
';
echo '$send_to = '.$send_to.'
';
echo '$email_subject = '.$email_subject.'
';
echo '$email_body = '.$email_body.'
';
echo '
';*/
return wp_mail($send_to, stripslashes_deep(html_entity_decode($email_subject, ENT_QUOTES, "UTF-8")), stripslashes_deep(html_entity_decode(wpautop($email_body), ENT_QUOTES, "UTF-8")), $headers);
}
}
// Attendee registration approval pending
if (!function_exists('event_espresso_send_attendee_registration_approval_pending')) {
function event_espresso_send_attendee_registration_approval_pending($registration_id) {
global $org_options, $wpdb;
//Get the event information
$events = $wpdb->get_results("SELECT ed.* FROM " . EVENTS_DETAIL_TABLE . " ed
JOIN " . EVENTS_ATTENDEE_TABLE . " ea
ON ed.id = ea.event_id
WHERE ea.registration_id='" . $registration_id . "'");
foreach ($events as $event) {
$event_id = $event->id;
$event_name = stripslashes_deep($event->event_name);
$event_desc = stripslashes_deep($event->event_desc);
$display_desc = $event->display_desc;
$event_identifier = $event->event_identifier;
$reg_limit = $event->reg_limit;
$active = $event->is_active;
$send_mail = $event->send_mail;
$conf_mail = $event->conf_mail;
$email_id = $event->email_id;
$alt_email = $event->alt_email;
$start_date = event_date_display($event->start_date);
$end_date = $event->end_date;
$virtual_url = $event->virtual_url;
$virtual_phone = $event->virtual_phone;
$event_address = $event->address;
$event_address2 = $event->address2;
$event_city = $event->city;
$event_state = $event->state;
$event_zip = $event->zip;
$event_country = $event->country;
$location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '
' . $event_address2 : '') . ($event_city != '' ? '
' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '
' . $event_zip : '') . ($event_country != '' ? '
' . $event_country : '');
$location_phone = $event->phone;
$require_pre_approval = $event->require_pre_approval;
$google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country));
}
//Build links
$event_url = espresso_reg_url($event_id);
$event_link = '' . $event_name . '';
$sql = "SELECT * FROM " . EVENTS_ATTENDEE_TABLE;
if ($registration_id != '') {
$sql .= " WHERE registration_id = '" . $registration_id . "' ";
} elseif ($attendee_id != '') {
$sql .= " WHERE id = '" . $attendee_id . "' ";
} else {
_e('No ID Supplied', 'event_espresso');
}
$sql .= " ORDER BY id ";
$sql .= " LIMIT 0,1 "; //Get the first attendees details
$attendees = $wpdb->get_results($sql);
//global $attendee_id;
foreach ($attendees as $attendee) {
$attendee_id = $attendee->id;
$attendee_email = $attendee->email;
$lname = $attendee->lname;
$fname = $attendee->fname;
$address = $attendee->address;
$address2 = $attendee->address2;
$city = $attendee->city;
$state = $attendee->state;
$zip = $attendee->zip;
$payment_status = $attendee->payment_status;
$txn_type = $attendee->txn_type;
$amount_pd = $attendee->amount_pd;
$event_cost = $attendee->amount_pd;
$payment_date = event_date_display($attendee->payment_date);
$phone = $attendee->phone;
$event_time = event_date_display($attendee->event_time, get_option('time_format'));
$end_time = event_date_display($attendee->end_time, get_option('time_format'));
$date = event_date_display($attendee->date);
$pre_approve = $attendee->pre_approve;
}
$admin_email = $alt_email == '' ? $org_options['contact_email'] : $alt_email . ',' . $org_options['contact_email'];
if (!empty($admin_email)) {
$subject = "New attendee registration approval pending";
$body = "
Event title: $event_name
Attendee name: $fname $lname
Thank You.
";
$email_params = array(
'send_to' => $admin_email,
'email_subject' => __($subject, 'event_espresso'),
'email_body' => $body
);
event_espresso_send_email($email_params);
}
if (!empty($attendee_email)) {
$subject = "Event registration pending";
$body = "
Event title: $event_name
Attendee name: $fname $lname
Your registration is pending for approval from event admin. You will receive an email with payment info when admin approves your registration.
Thank You.
";
$email_params = array(
'send_to' => $attendee_email,
'email_subject' => __($subject, 'event_espresso'),
'email_body' => $body
);
event_espresso_send_email($email_params);
}
}
}
//Payment Confirmations
if (!function_exists('event_espresso_send_payment_notification')) {
function event_espresso_send_payment_notification($atts) {
global $wpdb, $org_options;
//Extract the attendee_id and registration_id
extract($atts);
$registration_id = "{$registration_id}";
$attendee_id = "{$attendee_id}";
$registration_id = $registration_id != '' ? $registration_id : espresso_registration_id($attendee_id);
//Define email headers
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: " . $org_options['contact_email'] . "\r\n";
$headers .= "Reply-To: " . $org_options['contact_email'] . "\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$message_top = "";
$message_bottom = "";
//Get the attendee id or registration_id and create the sql statement
$sql = "SELECT a.*, e.event_name, e.event_desc, e.start_date, e.send_mail FROM " . EVENTS_ATTENDEE_TABLE . " a ";
$sql .= " LEFT JOIN " . EVENTS_DETAIL_TABLE . " e ON e.id = a.event_id ";
if ($registration_id != '') {
$sql .= " WHERE a.registration_id = '" . $registration_id . "' ";
} elseif ($attendee_id != '') {
$sql .= " WHERE a.id = '" . $attendee_id . "' ";
} else {
return __('No ID Supplied', 'event_espresso');
}
$sql .= " ORDER BY id LIMIT 1 ";
$attendees = $wpdb->get_results($sql);
$start = 0;
foreach ($attendees as $attendee) {
$attendee_id = $attendee->id;
$attendee_email = $attendee->email;
$event_id = $attendee->event_id;
$lname = $attendee->lname;
$fname = $attendee->fname;
$address = $attendee->address;
$address2 = $attendee->address2;
$city = $attendee->city;
$state = $attendee->state;
$zip = $attendee->zip;
$phone = $attendee->phone;
$event_time = $attendee->event_time;
$end_time = $attendee->end_time;
$date = $attendee->date;
$ticket_type = $attendee->price_option;
if ($start == 0) {
/*
* Since the payment amount and info is stored with the primary attendee, we want to grab only
* the first record info
*/
$payment_status = $attendee->payment_status;
$txn_type = $attendee->txn_type;
$amount_pd = $attendee->amount_pd;
$payment_date = $attendee->payment_date;
$txn_id = $attendee->txn_id;
$start = 1;
}
}
//Get the event information
$events = $wpdb->get_results("SELECT ed.* FROM " . EVENTS_DETAIL_TABLE . " ed
JOIN " . EVENTS_ATTENDEE_TABLE . " ea
ON ed.id = ea.event_id
WHERE ea.registration_id='" . $registration_id . "'");
foreach ($events as $event) {
$event_id = $event->id;
$event_code = $event->event_code;
$event_name = $event->event_name;
$event_desc = $event->event_desc;
$display_desc = $event->display_desc;
$event_identifier = $event->event_identifier;
$reg_limit = $event->reg_limit;
$active = $event->is_active;
$send_mail = $event->send_mail;
$conf_mail = $event->conf_mail;
$email_id = $event->email_id;
$alt_email = $event->alt_email;
$start_date = event_date_display($event->start_date);
$end_date = $event->end_date;
$virtual_url = $event->virtual_url;
$virtual_phone = $event->virtual_phone;
$event_address = $event->address;
$event_address2 = $event->address2;
$event_city = $event->city;
$event_state = $event->state;
$event_zip = $event->zip;
$event_country = $event->country;
$location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '
' . $event_address2 : '') . ($event_city != '' ? '
' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '
' . $event_zip : '') . ($event_country != '' ? '
' . $event_country : '');
$location_phone = $event->phone;
$google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country));
}
//Build links
$event_url = home_url() . "/?ee" . $event_id;
$event_link = '' . $event_name . '';
//Build the payment link
$payment_url = home_url() . "/?page_id=" . $org_options['return_url'] . "®istration_id=" . $registration_id;
$payment_link = '' . __('View Your Payment Details') . '';
//Create PDF Invoice link
$invoice_link = '' . __('Download PDF Invoice', 'event_espresso') . '';
//If the custom ticket is available, load the template file
if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/template.php")) {
if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/functions.php")) {
include_once(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/functions.php");
$qr_code = espresso_qr_code(array('attendee_id' => $attendee_id, 'event_name' => stripslashes_deep($event_name), 'attendee_first' => $fname, 'attendee_last' => $lname, 'registration_id' => $registration_id, 'event_code' => $event_code, 'ticket_type' => $ticket_type, 'event_time' => $event_time, 'amount_pd' => $amount_pd));
}
//Build the ticket link
//$ticket_url = home_url() . "/?download_ticket=true&id=" . $attendee_id . "®istration_id=" . $registration_id;
$ticket_link = espresso_ticket_links($registration_id, $attendee_id);
}
//Build custom questions
if (function_exists('event_espresso_custom_questions_output')) {
$email_questions = event_espresso_custom_questions_output(array('attendee_id' => $attendee_id));
}
//Perform replacement
$SearchValues = array(
"[event_id]",
"[event_identifier]",
"[registration_id]",
"[fname]",
"[lname]",
"[phone]",
"[event]",
"[event_name]",
"[description]",
"[event_link]",
"[event_url]",
"[virtual_url]",
"[virtual_phone]",
"[venue_title]",
"[venue_url]",
"[venue_image]",
"[venue_phone]",
"[txn_id]",
"[cost]",
"[event_price]",
"[ticket_type]",
"[ticket_link]",
"[contact]",
"[company]",
"[co_add1]",
"[co_add2]",
"[co_city]",
"[co_state]",
"[co_zip]",
"[payment_url]",
"[invoice_link]",
"[start_date]",
"[start_time]",
"[end_date]",
"[end_time]",
"[location]",
"[location_phone]",
"[google_map_link]",
"[custom_questions]", //Right now this can only be used in the initial confirmation email. We need to move this to the other email functions.
"[qr_code]");
$ReplaceValues = array(
$event_id,
$event_identifier,
$registration_id,
$fname,
$lname,
$phone,
$event_name,
$event_name,
$event_desc,
$event_link,
$event_url,
$virtual_url,
$virtual_phone,
//Venue information
$_event->venue_title,
$_event->venue_url,
$_event->venue_image,
$_event->venue_phone,
$txn_id,
$org_options['currency_symbol'] . $amount_pd,
$org_options['currency_symbol'] . $amount_pd,
$ticket_type,
$ticket_link,
$alt_email == '' ? $org_options['contact_email'] : $alt_email,
$org_options['organization'],
$org_options['organization_street1'],
$org_options['organization_street2'],
$org_options['organization_city'],
$org_options['organization_state'],
$org_options['organization_zip'],
//($start == 0)?$payment_link:'',
$payment_link,
$invoice_link,
event_date_display($start_date),
event_date_display($event_time, get_option('time_format')),
event_date_display($end_date),
event_date_display($end_time, get_option('time_format')),
$location,
$location_phone,
$google_map_link,
$email_questions,
$qr_code);
$email_body = $message_top . $org_options['payment_message'] . $message_bottom;
$subject = str_replace($SearchValues, $ReplaceValues, $org_options['payment_subject']);
$email_body = str_replace($SearchValues, $ReplaceValues, $email_body);
if ($org_options['default_mail'] == 'Y') {
wp_mail($attendee_email, stripslashes_deep(html_entity_decode($subject, ENT_QUOTES, "UTF-8")), stripslashes_deep(html_entity_decode(wpautop($email_body), ENT_QUOTES, "UTF-8")), $headers);
}
}
}
//Cancelation Notices
if (!function_exists('event_espresso_send_cancellation_notice')) {
function event_espresso_send_cancellation_notice($event_id) {
global $wpdb, $org_options;
//Define email headers
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: " . $org_options['contact_email'] . "\r\n";
$headers .= "Reply-To: " . $org_options['contact_email'] . "\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$message_top = "";
$message_bottom = "";
$events = $wpdb->get_results("SELECT * FROM " . EVENTS_DETAIL_TABLE . " WHERE id='" . $event_id . "'");
foreach ($events as $event) {
$event_name = $event->event_name;
$event_desc = $event->event_desc;
$send_mail = $event->send_mail;
$conf_mail = $event->conf_mail;
$email_id = $event->email_id;
$alt_email = $event->alt_email;
$start_date = $event->start_date;
$end_date = $event->end_date;
$event_address = $event->address;
$event_address2 = $event->address2;
$event_city = $event->city;
$event_state = $event->state;
$event_zip = $event->zip;
$location = (!empty($event_address) ? $event_address : '') . (!empty($event_address2) ? '
' . $event_address2 : '') . (!empty($event_city) ? '
' . $event_city : '') . (!empty($event_state) ? ', ' . $event_state : '') . (!empty($event_zip) ? '
' . $event_zip : '') . (!empty($event_country) ? '
' . $event_country : '');
$location_phone = $event->phone;
$attendees = $wpdb->get_results("SELECT * FROM " . EVENTS_ATTENDEE_TABLE . " WHERE event_id ='" . $event_id . "'");
foreach ($attendees as $attendee) {
$lname = $attendee->lname;
$fname = $attendee->fname;
$address = $attendee->address;
$city = $attendee->city;
$state = $attendee->state;
$zip = $attendee->zip;
$attendee_email = $attendee->email;
$phone = $attendee->phone;
$date = $attendee->date;
$event_id = $attendee->event_id;
$event_time = $attendee->event_time;
$end_time = $attendee->end_time;
//Replace the tags
//$tags = array("[fname]", "[lname]", "[event_name]" );
//$vals = array($fname, $lname, $event_name);
//$email_body = $message_top.$email_body.$message_bottom;
//$subject = str_replace($tags,$vals,$email_subject);
$subject = __('Event Cancellation Notice', 'event_espresso');
$email_body = '' . $event_name . __(' has been cancelled.', 'event_espresso') . '
';
$email_body .= '' . __('For more information, please email ' . $alt_email == '' ? $org_options['contact_email'] : $alt_email, 'event_espresso') . '
';
$body = str_replace($tags, $vals, $email_body);
wp_mail($attendee_email, stripslashes_deep(html_entity_decode($subject, ENT_QUOTES, "UTF-8")), stripslashes_deep(html_entity_decode(wpautop($email_body), ENT_QUOTES, "UTF-8")), $headers);
}
}
}
}
//Send Invoice
if (!function_exists('event_espresso_send_invoice')) {
function event_espresso_send_invoice($registration_id, $invoice_subject, $invoice_message) {
global $wpdb, $org_options;
//Define email headers
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: " . $org_options['contact_email'] . "\r\n";
$headers .= "Reply-To: " . $org_options['contact_email'] . "\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$message_top = "";
$message_bottom = "";
$start = 0;
$results = $wpdb->get_results("SELECT a.*, e.event_name, e.event_desc, e.event_code FROM " . EVENTS_ATTENDEE_TABLE . " a
LEFT JOIN " . EVENTS_DETAIL_TABLE . " e ON e.id = a.event_id
WHERE a.registration_id = '" . $registration_id . "' ORDER BY a.id LIMIT 1");
foreach ($results as $result) {
$registration_id = $result->registration_id;
$attendee_id = $result->id;
$lname = $result->lname;
$fname = $result->fname;
$address = $result->address;
$city = $result->city;
$state = $result->state;
$zip = $result->zip;
$ticket_type = $attendee->price_option;
$phone = $result->phone;
$date = $result->date;
if ($start == 0) {
/*
* Since the payment amount and info is stored with the primary attendee, we want to grab only
* the first record info
*/
$email = $result->email;
$payment_status = $result->payment_status;
$txn_type = $result->txn_type;
$amount_pd = $result->amount_pd;
$payment_date = $result->payment_date;
$txn_id = $result->txn_id;
$quantity = $result->quantity;
$coupon_code = $result->coupon_code;
$start = 1;
}
$event_id = $result->event_id;
$event_code = $result->event_code;
$event_name = $result->event_name;
$event_desc = $result->event_desc;
}
//Build links
$event_url = espresso_reg_url($event_id);
$event_link = '' . $event_name . '';
//Create PDF Invoice link
$invoice_link = '' . __('Download PDF Invoice', 'event_espresso') . '';
//If the custom ticket is available, load the template file
if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/template.php")) {
if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/functions.php")) {
include_once(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/functions.php");
$qr_code = espresso_qr_code(array('attendee_id' => $attendee_id, 'event_name' => stripslashes_deep($event_name), 'attendee_first' => $fname, 'attendee_last' => $lname, 'registration_id' => $registration_id, 'event_code' => $event_code, 'ticket_type' => $ticket_type, 'event_time' => $event_time, 'amount_pd' => $amount_pd));
}
//Build the ticket link
//$ticket_url = home_url() . "/?download_ticket=true&id=" . $attendee_id . "®istration_id=" . $registration_id;
$ticket_link = espresso_ticket_links($registration_id, $attendee_id);
}
//Build the payment link
$payment_url = home_url() . "/?page_id=" . $org_options['return_url'] . "®istration_id=" . $registration_id;
$payment_link = '' . __('View Your Payment Details') . '';
$gaddress = ($address != '' ? $address : '') . ($city != '' ? ',' . $city : '') . ($state != '' ? ',' . $state : '') . ($zip != '' ? ',' . $zip : '') . ($country != '' ? ',' . $country : '');
$google_map = htmlentities2('http://maps.google.com/maps?q=' . $gaddress);
$google_map_link = '' . $google_map . '';
//Build custom questions
if (function_exists('event_espresso_custom_questions_output')) {
$email_questions = event_espresso_custom_questions_output(array('attendee_id' => $attendee_id));
}
//Perform replacement
$SearchValues = array(
"[event_id]",
"[event_identifier]",
"[registration_id]",
"[fname]",
"[lname]",
"[phone]",
"[event]",
"[event_name]",
"[description]",
"[event_link]",
"[event_url]",
"[virtual_url]",
"[virtual_phone]",
"[venue_title]",
"[venue_url]",
"[venue_image]",
"[venue_phone]",
"[txn_id]",
"[cost]",
"[event_price]",
"[ticket_type]",
"[ticket_link]",
"[contact]",
"[company]",
"[co_add1]",
"[co_add2]",
"[co_city]",
"[co_state]",
"[co_zip]",
"[payment_url]",
"[invoice_link]",
"[start_date]",
"[start_time]",
"[end_date]",
"[end_time]",
"[location]",
"[location_phone]",
"[google_map_link]",
"[custom_questions]", //Right now this can only be used in the initial confirmation email. We need to move this to the other email functions.
"[qr_code]"
);
$ReplaceValues = array(
$event_id,
$event_identifier,
$registration_id,
$fname,
$lname,
$phone,
$event_name,
$event_name,
$event_desc,
$event_link,
$event_url,
$virtual_url,
$virtual_phone,
//Venue information
$_event->venue_title,
$_event->venue_url,
$_event->venue_image,
$_event->venue_phone,
$txn_id,
$org_options['currency_symbol'] . $amount_pd,
$org_options['currency_symbol'] . $amount_pd,
$ticket_type,
$ticket_link,
$alt_email == '' ? $org_options['contact_email'] : $alt_email,
$org_options['organization'],
$org_options['organization_street1'],
$org_options['organization_street2'],
$org_options['organization_city'],
$org_options['organization_state'],
$org_options['organization_zip'],
//($start == 0)?$payment_link:'',
$payment_link,
$invoice_link,
event_date_display($start_date),
event_date_display($event_time, get_option('time_format')),
event_date_display($end_date),
event_date_display($end_time, get_option('time_format')),
$location,
$location_phone,
$google_map_link,
$email_questions,
$qr_code
);
$invoice_subject = str_replace($SearchValues, $ReplaceValues, $invoice_subject);
//Send pre-existing email
$email_id = empty($_REQUEST['email_name']) ? '' : $_REQUEST['email_name'];
if ($email_id > 0) {
$email_data = array();
$email_data = espresso_email_message($email_id);
$invoice_message = $email_data['email_text'];
$invoice_subject = $email_data['email_subject'];
}
$message = str_replace($SearchValues, $ReplaceValues, $invoice_message);
$email_body = $message_top . $message . $message_bottom;
wp_mail($email, stripslashes_deep(html_entity_decode($invoice_subject, ENT_QUOTES, "UTF-8")), stripslashes_deep(html_entity_decode(wpautop($email_body), ENT_QUOTES, "UTF-8")), $headers);
}
}
//Reminder Notices
if (!function_exists('espresso_event_reminder')) {
function espresso_event_reminder($event_id, $email_subject='', $email_text='', $email_id=0) {
global $wpdb, $org_options;
//Define email headers
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: " . $org_options['contact_email'] . "\r\n";
$headers .= "Reply-To: " . $org_options['contact_email'] . "\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$message_top = "";
$message_bottom = "";
$count = 0;
$events = $wpdb->get_results("SELECT * FROM " . EVENTS_DETAIL_TABLE . " WHERE id='" . $event_id . "'");
foreach ($events as $event) {
$event_id = $event->id;
$event_code = $event->event_code;
$event_name = $event->event_name;
$event_desc = $event->event_desc;
$alt_email = $event->alt_email;
//$display_desc=$event->display_desc;
//$event_identifier=$event->event_identifier;
//$reg_limit = $event->reg_limit;
//$active=$event->is_active;
//$send_mail= $event->send_mail;
$raw_email_message = $email_text != '' ? $email_text : $event->conf_mail;
$raw_email_subject = $email_subject != '' ? $email_subject : $event_name;
//$email_id= $event->email_id;
$start_date = event_date_display($event->start_date);
$end_date = $event->end_date;
$event_address = $event->address;
$event_address2 = $event->address2;
$event_city = $event->city;
$event_state = $event->state;
$event_zip = $event->zip;
$event_country = $event->country;
$location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '
' . $event_address2 : '') . ($event_city != '' ? '
' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '
' . $event_zip : '') . ($event_country != '' ? '
' . $event_country : '');
$location_phone = $event->phone;
$google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country));
//Build links
$event_url = espresso_reg_url($event_id);
$event_link = '' . $event_name . '';
}
$attendees = $wpdb->get_results("SELECT * FROM " . EVENTS_ATTENDEE_TABLE . " WHERE event_id ='" . $event_id . "'");
foreach ($attendees as $attendee) {
$attendee_id = $attendee->id;
$registration_id = $attendee->registration_id;
$attendee_email = $attendee->email;
$lname = $attendee->lname;
$fname = $attendee->fname;
$address = $attendee->address;
$city = $attendee->city;
$state = $attendee->state;
$zip = $attendee->zip;
$payment_status = $attendee->payment_status;
$txn_type = $attendee->txn_type;
$amount_pd = $attendee->amount_pd;
$payment_date = $attendee->payment_date;
$phone = $attendee->phone;
$event_time = $attendee->event_time;
$end_time = $attendee->end_time;
$date = $attendee->date;
$ticket_type = $attendee->price_option;
//Create PDF Invoice link
$invoice_link = '' . __('Download PDF Invoice', 'event_espresso') . '';
//Build the payment link
$payment_url = home_url() . "/?page_id=" . $org_options['return_url'] . "®istration_id=" . $registration_id;
$payment_link = '' . __('View Your Payment Details') . '';
//Build custom questions
if (function_exists('event_espresso_custom_questions_output')) {
$email_questions = event_espresso_custom_questions_output(array('attendee_id' => $attendee_id));
}
//If the custom ticket is available, load the template file
if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/template.php")) {
if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/functions.php")) {
include_once(EVENT_ESPRESSO_UPLOAD_DIR . "/ticketing/functions.php");
$qr_code = espresso_qr_code(array('attendee_id' => $attendee_id, 'event_name' => stripslashes_deep($event_name), 'attendee_first' => $fname, 'attendee_last' => $lname, 'registration_id' => $registration_id, 'event_code' => $event_code, 'ticket_type' => $ticket_type, 'event_time' => $event_time, 'amount_pd' => $amount_pd));
}
//Build the ticket link
//$ticket_url = home_url() . "/?download_ticket=true&id=" . $attendee_id . "®istration_id=" . $registration_id;
$ticket_link = espresso_ticket_links($registration_id, $attendee_id);
}
//Perform replacement
$SearchValues = array(
"[event_id]",
"[event_identifier]",
"[registration_id]",
"[fname]",
"[lname]",
"[phone]",
"[event]",
"[event_name]",
"[description]",
"[event_link]",
"[event_url]",
"[virtual_url]",
"[virtual_phone]",
"[venue_title]",
"[venue_url]",
"[venue_image]",
"[venue_phone]",
"[txn_id]",
"[cost]",
"[event_price]",
"[ticket_type]",
"[ticket_link]",
"[contact]",
"[company]",
"[co_add1]",
"[co_add2]",
"[co_city]",
"[co_state]",
"[co_zip]",
"[payment_url]",
"[invoice_link]",
"[start_date]",
"[start_time]",
"[end_date]",
"[end_time]",
"[location]",
"[location_phone]",
"[google_map_link]",
"[custom_questions]", //Right now this can only be used in the initial confirmation email. We need to move this to the other email functions.
"[qr_code]");
$ReplaceValues = array(
$event_id,
$event_identifier,
$registration_id,
$fname,
$lname,
$phone,
$event_name,
$event_name,
$event_desc,
$event_link,
$event_url,
$virtual_url,
$virtual_phone,
//Venue information
$_event->venue_title,
$_event->venue_url,
$_event->venue_image,
$_event->venue_phone,
$txn_id,
$org_options['currency_symbol'] . $amount_pd,
$org_options['currency_symbol'] . $amount_pd,
$ticket_type,
$ticket_link,
$alt_email == '' ? $org_options['contact_email'] : $alt_email,
$org_options['organization'],
$org_options['organization_street1'],
$org_options['organization_street2'],
$org_options['organization_city'],
$org_options['organization_state'],
$org_options['organization_zip'],
//($start == 0)?$payment_link:'',
$payment_link,
$invoice_link,
event_date_display($start_date),
event_date_display($event_time, get_option('time_format')),
event_date_display($end_date),
event_date_display($end_time, get_option('time_format')),
$location,
$location_phone,
$google_map_link,
$email_questions,
$qr_code);
if ($email_id > 0) {
$email_data = array();
$email_data = espresso_email_message($email_id);
$raw_email_message = $email_data['email_text'];
$raw_email_subject = $email_data['email_subject'];
}
$email_subject = str_replace($SearchValues, $ReplaceValues, $raw_email_subject);
$email_message = str_replace($SearchValues, $ReplaceValues, $raw_email_message);
$email_body = $message_top . $email_message . $message_bottom;
if (wp_mail($attendee_email, stripslashes_deep(html_entity_decode($email_subject, ENT_QUOTES, "UTF-8")), stripslashes_deep(html_entity_decode(wpautop($email_body), ENT_QUOTES, "UTF-8")), $headers)) {
//sleep(1);
$count++;
}
}
?>