function espresso_ticket_links($registration_id, $attendee_id) { global $wpdb; $sql = "SELECT * FROM " . EVENTS_ATTENDEE_TABLE; if (espresso_is_primary_attendee($attendee_id) != true) { $sql .= " WHERE id = '" . $attendee_id . "' "; } else { $sql .= " WHERE registration_id = '" . $registration_id . "' "; } //echo $sql; $attendees = $wpdb->get_results($sql); $ticket_link = ''; if ($wpdb->num_rows > 0) { $group = $wpdb->num_rows > 1 ? '<strong>' . sprintf(__('Tickets Purchased (%s):', 'event_espresso'), $wpdb->num_rows) . '</strong><br />' : ''; $break = '<br />'; foreach ($attendees as $attendee) { $ticket_url = get_option('siteurl') . "/?download_ticket=true&id=" . $attendee->id . "&registration_id=" . $attendee->registration_id; $ticket_link .= '<a href="' . $ticket_url . '">' . __('Download/Print Ticket') . ' (' . $attendee->fname . ' ' . $attendee->lname . ')' . '</a>' . $break; } return '<p>' . $group . $ticket_link . '</p>'; } }
function espresso_ticket_launch($attendee_id = 0, $registration_id = 0) { global $wpdb, $org_options; $data = new stdClass(); //Make sure we have attendee data if ($attendee_id == 0 || $registration_id == 0) { return; } //Get the event record $sql = "SELECT ed.*, et.css_file, et.template_file, et.ticket_content, et.ticket_logo_url "; isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y' ? $sql .= ", v.id venue_id, v.name venue_name, v.address venue_address, v.address2 venue_address2, 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 .= " LEFT JOIN " . EVENTS_TICKET_TEMPLATES . " et ON et.id=ed.ticket_id "; $sql .= " WHERE ea.id = '" . $attendee_id . "' AND ea.registration_id = '" . $registration_id . "' "; //echo $sql; $data->event = $wpdb->get_row($sql, OBJECT); //Get the attendee record $sql = "SELECT ea.* FROM " . EVENTS_ATTENDEE_TABLE . " ea WHERE ea.id = '" . $attendee_id . "' AND ea.registration_id = '" . $registration_id . "' "; $data->attendee = $wpdb->get_row($sql, OBJECT); if (empty($data->attendee)) { //echo 'Invalid data supplied.'; return; } //Get the primary/first attendee $data->primary_attendee = espresso_is_primary_attendee($data->attendee->id) == true ? true : false; //unserialize the event meta $data->event->event_meta = unserialize($data->event->event_meta); //Get the registration date $data->attendee->registration_date = $data->attendee->date; //Get the CSS file $data->event->css_file = !empty($data->event->css_file) && $data->event->css_file > '0' ? $data->event->css_file : 'simple.css'; //echo $data->event->css_file; //Get the HTML file $data->event->template_file = !empty($data->event->template_file) && $data->event->template_file > '0' ? $data->event->template_file : 'index.php'; //Venue information if (isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y') { $data->event->venue_id = !empty($data->event->venue_id) ? $data->event->venue_id : ''; $data->event->venue_name = !empty($data->event->venue_name) ? $data->event->venue_name : ''; $data->event->address = !empty($data->event->venue_address) ? $data->event->venue_address : ''; $data->event->address2 = !empty($data->event->venue_address2) ? $data->event->venue_address2 : ''; $data->event->city = !empty($data->event->venue_city) ? $data->event->venue_city : ''; $data->event->state = !empty($data->event->venue_state) ? $data->event->venue_state : ''; $data->event->zip = !empty($data->event->venue_zip) ? $data->event->venue_zip : ''; $data->event->country = !empty($data->event->venue_country) ? $data->event->venue_country : ''; $data->event->venue_meta = !empty($data->event->venue_meta) ? unserialize($data->event->venue_meta) : ''; } else { $data->event->venue_name = !empty($data->event->venue_title) ? $data->event->venue_title : ''; } //Create the Gravatar image $data->gravatar = '<img src="' . espresso_get_gravatar($data->attendee->email, $size = '100', $default = 'http://www.gravatar.com/avatar/') . '" alt="Gravatar">'; //Google map IMAGE creation $data->event->google_map_image = espresso_google_map_link(array('id' => $data->event->venue_id, 'address' => $data->event->address, 'city' => $data->event->city, 'state' => $data->event->state, 'zip' => $data->event->zip, 'country' => $data->event->country, 'type' => 'map')); //Google map LINK creation $data->event->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, 'type' => 'text')); //Create the logo $data->event->ticket_logo_image = ''; $data->event->ticket_logo_url = empty($data->event->ticket_logo_url) ? $org_options['default_logo_url'] : $data->event->ticket_logo_url; if (!empty($data->event->ticket_logo_url)) { $image_size = getimagesize($data->event->ticket_logo_url); $data->event->ticket_logo_image = '<img src="' . $data->event->ticket_logo_url . '" ' . $image_size[3] . ' alt="logo" /> '; } //Create the QR Code image $data->qr_code = espresso_ticket_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, 'final_price' => $data->attendee->final_price)); //Build the seating assignment $seatingchart_tag = ''; if (defined("ESPRESSO_SEATING_CHART")) { if (class_exists("seating_chart")) { if (seating_chart::check_event_has_seating_chart($data->attendee->event_id)) { $rs = $wpdb->get_row("select scs.* from " . EVENTS_SEATING_CHART_EVENT_SEAT_TABLE . " sces inner join " . EVENTS_SEATING_CHART_SEAT_TABLE . " scs on sces.seat_id = scs.id where sces.attendee_id = " . $attendee_id); if ($rs !== NULL) { $data->attendee->seatingchart_tag = $rs->custom_tag . " " . $rs->seat . " " . $rs->row; } } } } //Build the ticket name $ticket_name = sanitize_title_with_dashes($data->attendee->id . ' ' . $data->attendee->fname . ' ' . $data->attendee->lname); //Get the HTML as an object ob_start(); if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . "tickets/templates/index.php")) { require_once EVENT_ESPRESSO_UPLOAD_DIR . 'tickets/templates/' . $data->event->template_file; } else { require_once 'templates/' . $data->event->template_file; } $content = ob_get_clean(); $content = espresso_replace_ticket_shortcodes($content, $data); //Check if debugging or mobile is set if (isset($_REQUEST['pdf']) && $_REQUEST['pdf'] == true) { //Create the PDF define('DOMPDF_ENABLE_REMOTE', true); require_once EVENT_ESPRESSO_PLUGINFULLPATH . 'tpc/dompdf/dompdf_config.inc.php'; $dompdf = new DOMPDF(); $dompdf->load_html($content); //$dompdf->set_paper('A4', 'landscape'); $dompdf->render(); $dompdf->stream($ticket_name . ".pdf", array("Attachment" => false)); exit(0); } echo $content; exit(0); }
function espresso_prepare_email_data($attendee_id, $multi_reg, $custom_data = '') { global $wpdb, $org_options; do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, ''); $data = new stdClass(); $data->multi_reg = $multi_reg; //print_r($custom_data); //Create vars for the custom data if (!empty($custom_data)) { extract($custom_data, EXTR_PREFIX_ALL, 'custom_data'); } //echo $custom_data_email_type; //Get the event record if (empty($custom_data_email_type)) { $custom_data_email_type = ''; } $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.address2 venue_address2, 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; $data->event->event_meta = unserialize($data->event->event_meta); //Venue variables if (isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y') { $data->event->venue_meta = unserialize($data->event->venue_meta); //Debug //echo "<pre>".print_r($data->event->venue_meta,true)."</pre>"; $data->event->venue_url = $data->event->venue_meta['website']; $data->event->venue_phone = $data->event->venue_meta['phone']; $data->event->venue_image = '<img src="' . $data->event->venue_meta['image'] . '" />'; $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; } //Build the table to hold the event and attendee info $data->table_open = '<table width="100%" border="1" cellpadding = "5" cellspacing="5" style="border-collapse:collapse;">'; $data->table_heading = "<tr><th>" . __('Event Name', 'event_espresso') . "</th><th>" . __('Date', 'event_espresso') . "</th><th>" . __('Time', 'event_espresso') . "</th><th>" . __('Location', 'event_espresso') . "</th></tr>"; $data->table_close = "</table>"; //Clear ticket data $data->qr_code = ''; $data->ticket_link = ''; $data->admin_ticket_link = ''; //Old ticketing system 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; } //New ticketing system version 2.0 if (function_exists('espresso_ticket_launch')) { $data->qr_code = espresso_ticket_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; } //certificate system if (function_exists('espresso_certificate_launch')) { $data->certificate_link = espresso_certificate_links($data->attendee->registration_id, $data->attendee->id); $data->admin_certificate_link = $data->certificate_link; } //Build the address $data->location = ($data->event->address != '' ? $data->event->address : '') . ($data->event->address2 != '' ? '<br />' . $data->event->address2 : '') . ($data->event->city != '' ? '<br />' . $data->event->city : '') . ($data->event->state != '' ? ', ' . $data->event->state : '') . ($data->event->zip != '' ? '<br />' . $data->event->zip : '') . ($data->event->country != '' ? '<br />' . $data->event->country : ''); //Build Google map link $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)); //Registration URL $data->event_url = espresso_reg_url($data->event->id); $data->event_link = '<a href="' . $data->event_url . '">' . stripslashes_deep($data->event->event_name) . '</a>'; //Venue name if (!isset($data->event->venue_name)) { $data->event->venue_name = ''; } //Table of events registered for $data->event_table .= "\n\t\t<tr>\n\t\t\t<td>" . stripslashes_deep($data->event->event_name) . " | " . $data->attendee->price_option . "</td>\n\t\t\t<td>" . event_date_display($data->attendee->start_date) . ' - ' . event_date_display($data->attendee->end_date) . "</td>\n\t\t\t<td>" . event_date_display($data->attendee->event_time, get_option('time_format')) . " - " . event_date_display($data->attendee->end_time, get_option('time_format')) . "</td>\n\t\t\t<td>" . $data->event->venue_name . "<br />{$data->location} <br />{$data->google_map_link}</td>" . ($data->attendee->quantity > 0 ? '<td>' . $data->attendee->quantity . __(' attendees', 'event_espresso') . '</td>' : '') . "</tr>"; //Output custom questions 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 = '<tr><td colspan = "6">' . $email_questions_r . '</td></tr>'; } $data->event_table .= $data->email_questions; } //Payment URL $payment_url = get_option('siteurl') . "/?page_id=" . $org_options['return_url'] . "&registration_id=" . $data->attendee->registration_id; $data->payment_link = '<a href="' . $payment_url . '">' . __('View Your Payment Details') . '</a>'; // download link $data->invoice_link = '<a href="' . home_url() . '/?download_invoice=true&attendee_id=' . $data->attendee->id . '&registration_id=' . $data->attendee->registration_id . '" target="_blank">' . __('Download PDF Invoice', 'event_espresso') . '</a>'; //Edit attendee link $data->edit_attendee = espresso_edit_attendee($data->attendee->registration_id, $data->attendee->id, $data->attendee->event_id, 'attendee', 'Edit Registration Details'); $data->email_subject = !$data->multi_reg ? $data->event->event_name : $org_options['organization'] . __(' registration confirmation', 'event_espresso'); //Build invoice email if ($custom_data_email_type == 'invoice') { $data->email_subject = $custom_data_invoice_subject; $data->event->conf_mail = $custom_data_invoice_message; $data->event->send_mail = 'Y'; $data->event->email_id = empty($_REQUEST['email_name']) ? '' : $_REQUEST['email_name']; } //Build payment email if ($custom_data_email_type == 'payment') { $data->email_subject = $custom_data_payment_subject; $data->event->conf_mail = $custom_data_payment_message; $data->event->send_mail = 'Y'; } //Build reminder email if ($custom_data_email_type == 'reminder') { $data->email_subject = $custom_data_email_subject; $data->event->conf_mail = $custom_data_email_text; $data->event->send_mail = 'Y'; $data->event->email_id = $custom_data_email_id > 0 ? $custom_data_email_id : ''; } return $data; }
function espresso_ticket_links($registration_id, $attendee_id, $email = FALSE) { global $wpdb; $sql = "SELECT * FROM " . EVENTS_ATTENDEE_TABLE; if (espresso_is_primary_attendee($attendee_id) != true) { $sql .= " WHERE id = '" . $attendee_id . "' "; } else { $sql .= " WHERE registration_id = '" . $registration_id . "' "; } //echo $sql; $attendees = $wpdb->get_results($sql); $ticket_link = ''; if ($wpdb->num_rows > 0) { $break = '<br />'; $group = $wpdb->num_rows > 1 ? sprintf(__('Tickets Purchased (%s):', 'event_espresso'), $wpdb->num_rows) . $break : __('Download/Print Ticket:', 'event_espresso') . $break; foreach ($attendees as $attendee) { $ticket_url = get_option('siteurl') . "/?download_ticket=true&id=" . $attendee->id . "&r_id=" . $attendee->registration_id; if (function_exists('espresso_ticket_launch')) { $ticket_url = espresso_ticket_url($attendee->id, $attendee->registration_id); } $ticket_link .= '<a href="' . $ticket_url . '" target="_blank">' . $attendee->fname . ' ' . $attendee->lname . '</a>' . $break; } if ($email == TRUE) { $text = '<p>' . $group . $ticket_link . '</p>'; } else { $text = $ticket_link; } return $text; } }