function event_espresso_send_attendee_registration_approval_pending($registration_id)
 {
     global $org_options, $wpdb;
     do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
     //Get the event information
     $events = $wpdb->get_results("SELECT ed.* FROM " . EVENTS_DETAIL_TABLE . " ed\n\t\t\t\t\t\tJOIN " . EVENTS_ATTENDEE_TABLE . " ea\n\t\t\t\t\t\tON ed.id = ea.event_id\n\t\t\t\t\t\tWHERE 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 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $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 = '<a href="' . $event_url . '">' . $event_name . '</a>';
     $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 = "\nEvent title: {$event_name}\n<br/>\nAttendee name: {$fname}&nbsp;{$lname}\n<br/>\nThank You.\n";
         $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 = "\nEvent title: {$event_name}\n<br/>\nAttendee name: {$fname}&nbsp;{$lname}\n<br/>\nYour registration is pending for approval from event admin. You will receive an email with payment info when admin approves your registration.\n<br/><br/>\nThank You.\n";
         $email_params = array('send_to' => $attendee_email, 'email_subject' => __($subject, 'event_espresso'), 'email_body' => $body);
         event_espresso_send_email($email_params);
     }
 }
function edit_event($event_id = 0)
{
    global $wpdb, $org_options, $espresso_premium;
    ob_start();
    $SQL = "SELECT e.*, ev.id as venue_id\n\t    FROM " . EVENTS_DETAIL_TABLE . " e\n\t    LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " vr ON e.id = vr.event_id\n\t    LEFT JOIN " . EVENTS_VENUE_TABLE . " ev ON vr.venue_id = ev.id\n\t    WHERE e.id = %d";
    $events = $wpdb->get_results($wpdb->prepare($SQL, $event_id));
    if (!is_array($events) || count($events) <= 0) {
        event_espresso_edit_list();
        #echo "<div class='updated fade below-h2'><p>";
        #_e("Event is not available any more!","eventespresso");
        #echo "</p></div>";
        return 1;
    }
    foreach ($events as $event) {
        $event_id = $event->id;
        $event_name = htmlentities(stripslashes($event->event_name), ENT_QUOTES, 'UTF-8');
        $event_desc = htmlentities(stripslashes($event->event_desc), ENT_QUOTES, 'UTF-8');
        $display_desc = $event->display_desc;
        $display_reg_form = $event->display_reg_form;
        $member_only = $event->member_only;
        $phone = stripslashes_deep($event->phone);
        $externalURL = stripslashes_deep($event->externalURL);
        //Early discounts
        $early_disc = stripslashes_deep($event->early_disc);
        $early_disc_date = stripslashes_deep($event->early_disc_date);
        $early_disc_percentage = stripslashes_deep($event->early_disc_percentage);
        $post_id = $event->post_id;
        $post_type = $event->post_type;
        $event_identifier = stripslashes_deep($event->event_identifier);
        $registration_start = $event->registration_start;
        $registration_end = $event->registration_end;
        $registration_startT = $event->registration_startT;
        $resitration_endT = $event->registration_endT;
        $timezone_string = $event->timezone_string;
        $start_date = $event->start_date;
        $end_date = $event->end_date;
        $tax_percentage = $event->tax_percentage;
        $tax_mode = $event->tax_mode;
        $start_time = isset($event->start_time) ? $event->start_time : '';
        $end_time = isset($event->end_time) ? $event->end_time : '';
        $reg_limit = $event->reg_limit;
        $additional_limit = $event->additional_limit;
        $allow_overflow = $event->allow_overflow;
        $overflow_event_id = $event->overflow_event_id;
        $allow_multiple = $event->allow_multiple;
        $event_cost = unserialize(isset($event->event_cost) ? $event->event_cost : '');
        $is_active = $event->is_active;
        $status = array();
        $status = event_espresso_get_is_active($event_id);
        $event_status = $event->event_status;
        $conf_mail = stripslashes_deep($event->conf_mail);
        $send_mail = stripslashes_deep($event->send_mail);
        $use_coupon_code = $event->use_coupon_code;
        $alt_email = $event->alt_email;
        $address = stripslashes_deep($event->address);
        $address2 = stripslashes_deep($event->address2);
        $city = stripslashes_deep($event->city);
        $state = stripslashes_deep($event->state);
        $zip = stripslashes_deep($event->zip);
        $country = stripslashes_deep($event->country);
        $venue_id = stripslashes_deep($event->venue_id);
        $venue_title = stripslashes_deep($event->venue_title);
        $venue_url = stripslashes_deep($event->venue_url);
        $venue_phone = stripslashes_deep($event->venue_phone);
        $venue_image = stripslashes_deep($event->venue_image);
        $email_id = $event->email_id;
        $ticket_id = $event->ticket_id;
        $wp_user = $event->wp_user;
        $date_submitted = $event->submitted != '0000-00-00 00:00:00' ? empty($event->submitted) ? '' : event_date_display($event->submitted, get_option('date_format')) : 'N/A';
        $google_map_link = espresso_google_map_link(array('address' => $address, 'city' => $city, 'state' => $state, 'zip' => $zip, 'country' => $country));
        //Virtual location
        $virtual_url = stripslashes_deep($event->virtual_url);
        $virtual_phone = stripslashes_deep($event->virtual_phone);
        $question_groups = unserialize($event->question_groups);
        global $event_meta;
        $event_meta = unserialize($event->event_meta);
        $recurrence_id = $event->recurrence_id;
        $visible_on = $event->visible_on;
        $require_pre_approval = $event->require_pre_approval;
        if (function_exists('event_espresso_edit_event_groupon')) {
            $use_groupon_code = $event->use_groupon_code;
        }
    }
    $values = array(array('id' => 'Y', 'text' => __('Yes', 'event_espresso')), array('id' => 'N', 'text' => __('No', 'event_espresso')));
    //If user is an event manager, then show only their events
    if (function_exists('espresso_is_my_event') && espresso_is_my_event($event_id) != true) {
        echo '<h2>' . __('Sorry, you do not have permission to edit this event.', 'event_espresso') . '</h2>';
        return;
    }
    ?>
	<!--Update event display-->
	<div id="submitdiv" class="postbox">
		<div class="handlediv" title="Click to toggle"><br />
		</div>
		<h3 class='hndle'> <span>
	<?php 
    _e('Quick Overview', 'event_espresso');
    ?>
			</span> </h3>
		<div class="inside">
			<div class="submitbox" id="submitpost">
				<div id="minor-publishing">
					<div id="minor-publishing-actions" class="clearfix">
						<div id="preview-action"> <a class="preview button" href="<?php 
    echo espresso_reg_url($event_id);
    ?>
" target="_blank" id="event-preview" tabindex="5">
	<?php 
    _e('View Event', 'event_espresso');
    ?>
							</a>
							<input type="hidden" name="event-preview" id="event-preview" value="" />
						</div>
						<div id="copy-action"> <a class="preview button" href="admin.php?page=events&amp;action=copy_event&event_id=<?php 
    echo $event_id;
    ?>
" id="post-copy" tabindex="4" onclick="return confirm('<?php 
    _e('Are you sure you want to copy ' . $event_name . '?', 'event_espresso');
    ?>
')">
	<?php 
    _e('Duplicate Event', 'event_espresso');
    ?>
							</a>
							<input  type="hidden" name="event-copy" id="event-copy" value="" />
						</div>
					</div>
					<!-- /minor-publishing-actions -->

					<div id="misc-publishing-actions">
						<div class="misc-pub-section curtime" id="visibility"> <span id="timestamp">
	<?php 
    _e('Start Date', 'event_espresso');
    ?>
								<b> <?php 
    echo event_date_display($start_date);
    ?>
 <?php 
    echo event_date_display($start_time, get_option('time_format'));
    ?>
</b> </span> </div>
						<div class="misc-pub-section">
							<label for="post_status">
	<?php 
    _e('Current Status:', 'event_espresso');
    ?>
							</label>
							<span id="post-status-display"> <?php 
    echo $status['display'];
    ?>
</span> </div>
						<div class="misc-pub-section" id="visibility"> <img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/group.png" width="16" height="16" alt="<?php 
    _e('View Attendees', 'event_espresso');
    ?>
" /> <?php 
    echo !empty($number_attendees) ? __('Attendees', 'event_espresso') : '<a href="admin.php?page=events&amp;event_admin_reports=list_attendee_payments&amp;event_id=' . $event_id . '">' . __('Attendees', 'event_espresso') . '</a>';
    ?>
: <?php 
    echo get_number_of_attendees_reg_limit($event_id, 'num_attendees_slash_reg_limit');
    ?>
 </div>
						<div class="misc-pub-section <?php 
    echo function_exists('espresso_is_admin') && espresso_is_admin() == true && $espresso_premium == true ? '' : 'misc-pub-section-last';
    ?>
" id="visibility2"> <a href="admin.php?page=events&amp;event_admin_reports=event_newsletter&amp;event_id=<?php 
    echo $event_id;
    ?>
" title="<?php 
    _e('Email Event Attendees', 'event_espresso');
    ?>
"><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/email_go.png" width="16" height="16" alt="<?php 
    _e('Newsletter', 'event_espresso');
    ?>
" /></a> <a href="admin.php?page=events&amp;event_admin_reports=event_newsletter&amp;event_id=<?php 
    echo $event_id;
    ?>
" title="<?php 
    _e('Email Event Attendees', 'event_espresso');
    ?>
">
						<?php 
    _e('Email Event Attendees', 'event_espresso');
    ?>
							</a></div>
						<?php 
    if (function_exists('espresso_is_admin') && espresso_is_admin() == true && $espresso_premium == true) {
        $user_name = espresso_user_meta($wp_user, 'user_firstname') != '' ? espresso_user_meta($wp_user, 'user_firstname') . ' ' . espresso_user_meta($wp_user, 'user_lastname') . ' (<a href="user-edit.php?user_id=' . $wp_user . '">' . espresso_user_meta($wp_user, 'user_nicename') . '</a>)' : espresso_user_meta($wp_user, 'display_name') . ' (<a href="user-edit.php?user_id=' . $wp_user . '">' . espresso_user_meta($wp_user, 'user_nicename') . '</a>)';
        $user_company = espresso_user_meta($wp_user, 'company') != '' ? espresso_user_meta($wp_user, 'company') : '';
        $user_organization = espresso_user_meta($wp_user, 'organization') != '' ? espresso_user_meta($wp_user, 'organization') : '';
        $user_co_org = $user_company != '' ? $user_company : $user_organization;
        echo '<div class="misc-pub-section misc-pub-section-last" id="visibility3">';
        echo '<ul>';
        echo '<li><strong>' . __('Submitted By:', 'event_espresso') . '</strong> ' . $user_name . '</li>';
        echo '<li><strong>' . __('Email:', 'event_espresso') . '</strong> ' . espresso_user_meta($wp_user, 'user_email') . '</li>';
        echo $user_co_org != '' ? '<li><strong>' . __('Organization:', 'event_espresso') . '</strong> ' . espresso_user_meta($wp_user, 'company') . '</li>' : '';
        echo '<li><strong>' . __('Date Submitted:', 'event_espresso') . '</strong> ' . $date_submitted . '</li>';
        echo '</ul>';
        echo '</div>';
    }
    ?>
					</div>
					<!-- /misc-publishing-actions -->
				</div>
				<!-- /minor-publishing -->

				<div id="major-publishing-actions" class="clearfix">
							<?php 
    if ($recurrence_id > 0) {
        ?>
						<div id="delete-action"> &nbsp; <a class="submitdelete deletion" href="admin.php?page=events&amp;action=delete_recurrence_series&recurrence_id=<?php 
        echo $recurrence_id;
        ?>
" onclick="return confirm('<?php 
        _e('Are you sure you want to delete ' . $event_name . '?', 'event_espresso');
        ?>
')">
						<?php 
        _e('Delete all events in this series', 'event_espresso');
        ?>
							</a> </div>
							<?php 
    } else {
        ?>
						<div id="delete-action"> <a class="submitdelete deletion" href="admin.php?page=events&amp;action=delete&event_id=<?php 
        echo $event_id;
        ?>
" onclick="return confirm('<?php 
        _e('Are you sure you want to delete ' . $event_name . '?', 'event_espresso');
        ?>
')">
						<?php 
        _e('Delete Event', 'event_espresso');
        ?>
							</a> </div>
	<?php 
    }
    ?>
					<div id="publishing-action">
						<input class="button-primary" type="submit" name="Submit" value="<?php 
    _e('Update Event', 'event_espresso');
    ?>
" id="save_event_setting" />
					</div>
					<!-- /publishing-action -->
				</div>
				<!-- /major-publishing-actions -->
			</div>
			<!-- /submitpost -->
		</div>
		<!-- /inside -->
	</div>
	<!-- /submitdiv -->

	<?php 
    if ($espresso_premium == true) {
        do_action('action_hook_espresso_edit_event_right_column_top', $event_id);
    }
    $advanced_options = '';
    if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/event-management/advanced_settings.php')) {
        require_once EVENT_ESPRESSO_PLUGINFULLPATH . "includes/admin-files/event-management/advanced_settings.php";
    } else {
        //Display Lite version options
        $status = array(array('id' => 'A', 'text' => __('Active', 'event_espresso')), array('id' => 'D', 'text' => __('Deleted', 'event_espresso')));
        $advanced_options = '<p><strong>' . __('Advanced Options:', 'event_espresso') . '</strong></p>' . '<p><label>' . __('Is this an active event? ', 'event_espresso') . '</label>' . __(select_input('is_active', $values, $is_active)) . '</p>' . '<p><label>' . __('Display  description? ', 'event_espresso') . '</label>' . select_input('display_desc', $values, $display_desc) . '</p>' . '<p><label>' . __('Display  registration form? ', 'event_espresso') . '</label>' . select_input('display_reg_form', $values, $display_reg_form) . '</p>';
    }
    //Display Lite version options - End
    espresso_postbox('event-status', 'Event Options', '<p><label for"reg-limit">' . __('Attendee Limit', 'event_espresso') . ': </label><input name="reg_limit" id="reg-limit" size="10" type="text" value="' . $reg_limit . '" /><br />' . '<span>(' . __('leave blank for unlimited', 'event_espresso') . ')</span></p>' . '<p><label>' . __('Allow group registrations?', 'event_espresso') . '</label> ' . select_input('allow_multiple', $values, $allow_multiple) . '</p>' . '<p><label for="addit-limit">' . __('Max Group Registrants', 'event_espresso') . ':</label> <input type="text" id="addit-limit" name="additional_limit" value="' . $additional_limit . '" size="4" />' . '</p>' . $advanced_options);
    if (function_exists('espresso_ticket_dd') && $espresso_premium == true) {
        ?>
		<div id="event-category" class="postbox">
			<div class="handlediv" title="Click to toggle"><br>
			</div>
			<h3 class="hndle"> <span>
				<?php 
        _e('Custom Tickets', 'event_espresso');
        ?>
				</span> </h3>
			<div class="inside"> <?php 
        echo espresso_ticket_dd($ticket_id);
        ?>
 </div>
		</div>
	<?php 
    }
    if ($espresso_premium == true) {
        ?>
		<div id="featured-image-options" class="postbox">
				<div class="handlediv" title="Click to toggle"><br />
				</div>
				<h3 class="hndle"> <span>
					<?php 
        _e('Featured Image', 'event_espresso');
        ?>
					</span> </h3>
		<div class="inside">
			<div id="featured-image">
				<?php 
        if (!empty($event_meta['event_thumbnail_url'])) {
            $event_thumb = $event_meta['event_thumbnail_url'];
        } else {
            $event_thumb = '';
        }
        ?>
				<label for="upload_image">
					<?php 
        _e('Add Featured Image', 'event_espresso');
        ?>
				</label>
				<input id="upload_image" type="hidden" size="36" name="upload_image" value="<?php 
        echo $event_thumb;
        ?>
" />
				<input id="upload_image_button" type="button" value="<?php 
        _e('Upload Image', 'event_espresso');
        ?>
" />
				<?php 
        if ($event_thumb) {
            ?>
					<p class="event-featured-thumb"><img style="width: 100%;"  src="<?php 
            echo $event_thumb;
            ?>
" alt="" /></p>
					<a id='remove-image' href='#' title='<?php 
            _e('Remove Image', 'event_espresso');
            ?>
' onclick='return false;'><?php 
            _e('Remove Image', 'event_espresso');
            ?>
</a>
				<?php 
        }
        ?>
			</div>
			
		</div>
		</div>
	<?php 
    }
    /*
     * Added for seating chart addon
     */
    if (defined('ESPRESSO_SEATING_CHART')) {
        $seating_chart_id = 0;
        $seating_chart_event = $wpdb->get_row("select * from " . EVENTS_SEATING_CHART_EVENT_TABLE . " where event_id = {$event_id}");
        if ($seating_chart_event !== NULL) {
            $seating_chart_id = $seating_chart_event->seating_chart_id;
        }
        ?>
		<div style="display: block;" id="seating_chart-options" class="postbox">
			<div class="handlediv" title="Click to toggle"><br />
			</div>
			<h3 class="hndle"><span>
		<?php 
        _e('Seating chart', 'event_espresso');
        ?>
				</span></h3>
			<div class="inside">
				<p>
					<select name="seating_chart_id" id="seating_chart_id" style="float:none;">
						<option value="0" <?php 
        if ($seating_chart_id == 0) {
            echo 'selected="selected"';
        }
        ?>
 ><?php 
        _e('None', 'event_espresso');
        ?>
</option>
						<?php 
        $seating_charts = $wpdb->get_results("select * from " . EVENTS_SEATING_CHART_TABLE . " order by name");
        foreach ($seating_charts as $seating_chart) {
            ?>
							<option value="<?php 
            echo $seating_chart->id;
            ?>
" <?php 
            if ($seating_chart_id == $seating_chart->id) {
                echo 'selected="selected"';
            }
            ?>
 ><?php 
            echo $seating_chart->name;
            ?>
</option>
			<?php 
        }
        ?>
					</select>
					<?php 
        do_action('espresso_seating_chart_select', $event_id);
        ?>
					<?php 
        do_action('ee_seating_chart_js');
        ?>
					<?php 
        do_action('ee_seating_chart_css');
        ?>
					<?php 
        do_action('ee_seating_chart_flush_expired_seats');
        ?>
				</p>
			</div>
		</div>
		<?php 
    }
    /*
     * End
     */
    ###### Modification by wp-developers to introduce attendee pre-approval requirement ##########
    if (isset($org_options['use_attendee_pre_approval']) && $org_options['use_attendee_pre_approval'] == 'Y' && $espresso_premium == true) {
        ?>
		<div id="attendee-pre-approval-options" class="postbox">
			<div class="handlediv" title="Click to toggle"><br />
			</div>
			<h3 class="hndle"> <span>
					<?php 
        _e('Attendee pre-approval required?', 'event_espresso');
        ?>
				</span> </h3>
			<div class="inside">
				<p class="pre-approve">
		<?php 
        $pre_approval_values = array(array('id' => '1', 'text' => __('Yes', 'event_espresso')), array('id' => '0', 'text' => __('No', 'event_espresso')));
        echo select_input("require_pre_approval", $pre_approval_values, $require_pre_approval);
        ?>
				</p>
			</div>
		</div>
		<?php 
    }
    ########## END #################################
    if (defined('EVENT_ESPRESSO_MEMBERS_DIR') && $espresso_premium == true) {
        ?>
		<div  id="member-options" class="postbox">
			<div class="handlediv" title="Click to toggle"><br>
			</div>
			<h3 class="hndle"> <span>
		<?php 
        _e('Member Options', 'event_espresso');
        ?>
				</span> </h3>
			<div class="inside">
				<p><?php 
        echo event_espresso_member_only($member_only);
        ?>
</p>
			</div>
		</div>
		<!-- /member-options -->
		<?php 
    }
    if (defined('EVENTS_MAILCHIMP_ATTENDEE_REL_TABLE') && $espresso_premium == true) {
        MailChimpView::event_list_selection();
    }
    ?>
	
	<div  id="event-categories" class="postbox">
		<div class="handlediv" title="Click to toggle"><br>
		</div>
		<h3 class="hndle"> <span>
	<?php 
    _e('Event Category', 'event_espresso');
    ?>
			</span> </h3>
		<div class="inside"> <?php 
    echo event_espresso_get_categories($event_id);
    ?>
 </div>
	</div>
	<!-- /event-category -->

	<?php 
    if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/event-management/promotions_box.php')) {
        require_once EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/event-management/promotions_box.php';
    }
    ?>
	<!-- /event-promotions -->

	<?php 
    echo espresso_event_question_groups($question_groups, $event_meta['add_attendee_question_groups'], $event);
    ?>
	<!-- /event-questions -->

	<?php 
    do_action('action_hook_espresso_staff_cb', $event_id, $recurrence_id);
    if (defined('EVENTS_GROUPON_CODES_TABLE') && $espresso_premium == true) {
        ?>
		<div id="groupon-options" class="postbox">
			<div class="handlediv" title="Click to toggle"><br>
			</div>
			<h3 class="hndle"> <span>
		<?php 
        _e('Groupon Options', 'event_espresso');
        ?>
				</span> </h3>
			<div class="inside">
				<p><?php 
        echo event_espresso_edit_event_groupon($use_groupon_code);
        ?>
</p>
			</div>
		</div>
		<!-- /groupon-options -->
			<?php 
    }
    if ($espresso_premium == true) {
        do_action('action_hook_espresso_edit_event_right_column_bottom', $event_id);
    }
    $sidebar_content = ob_get_clean();
    ob_start();
    ?>
	<div id="titlediv"> <strong>
	<?php 
    _e('Event Title', 'event_espresso');
    ?>
		</strong>
		<div id="titlewrap">
			<label class="screen-reader-text" for="title">
	<?php 
    _e('Event Title', 'event_espresso');
    ?>
			</label>
			<input type="text" name="event" size="30" tabindex="1" value="<?php 
    echo $event_name;
    ?>
" id="title" autocomplete="off" />
		</div>
		<!-- /titlewrap -->
		<div class="inside">
			<div id="edit-slug-box"> <strong>
	<?php 
    _e('Unique Event Identifier:', 'event_espresso');
    ?>
				</strong>
				<input disabled="disabled" type="text" size="30" tabindex="2" name="event_identifier" id="event_identifier" value ="<?php 
    echo $event_identifier;
    ?>
" />
	<?php 
    echo '<a href="#" class="button" onclick="prompt(&#39;Event Shortcode:&#39;, \'[SINGLEEVENT single_event_id=&#34;\' + jQuery(\'#event_identifier\').val() + \'&#34;]\'); return false;">' . __('Shortcode') . '</a>';
    ?>
 <?php 
    echo '<a href="#" class="button" onclick="prompt(&#39;Short URL:&#39;, \'' . espresso_reg_url($event_id) . '\'); return false;">' . __('Short URL') . '</a>';
    ?>
 <?php 
    echo '<a href="#" class="button" onclick="prompt(&#39;Full URL:&#39;, \'' . home_url() . '/?page_id=' . $org_options['event_page_id'] . '&amp;regevent_action=register&amp;event_id=' . $event_id . '\'); return false;">' . __('Full URL') . '</a>';
    ?>
 </div>
			<!-- /edit-slug-box -->
		</div>
		<!-- /.inside -->
	</div>
	<!-- /titlediv -->

	<div id="descriptiondivrich" class="postarea"> <strong>
		<?php 
    _e('Event Description', 'event_espresso');
    ?>
		</strong>
		<?php 
    if (function_exists('wp_editor')) {
        $args = array("textarea_rows" => 5, "textarea_name" => "event_desc", "editor_class" => "my_editor_custom");
        wp_editor(espresso_admin_format_content($event_desc), "event_desc", $args);
    } else {
        /*
         This is the editor used by WordPress. It is very very hard to find documentation for this thing, so I pasted everything I could find below.
         param: string $content Textarea content.
         param: string $id Optional, default is 'content'. HTML ID attribute value.
         param: string $prev_id Optional, default is 'title'. HTML ID name for switching back and forth between visual editors.
         param: bool $media_buttons Optional, default is true. Whether to display media buttons.
         param: int $tab_index Optional, default is 2. Tabindex for textarea element.
        */
        //the_editor($content, $id = 'content', $prev_id = 'title', $media_buttons = true, $tab_index = 2)
        //the_editor(espresso_admin_format_content($event_desc), $id = 'event_desc'/* , $prev_id = 'title', $media_buttons = true, $tab_index = 3 */);
        the_editor(espresso_admin_format_content($event_desc), $id = 'event_desc');
    }
    ?>
		<table id="post-status-info" cellspacing="0">
			<tbody>
				<tr>
					<td id="wp-word-count"></td>
					<td class="autosave-info"><span id="autosave">&nbsp;</span></td>
				</tr>
			</tbody>
		</table>
	</div>
	<!-- /postdivrich -->
	<?php 
    $main_post_content = ob_get_clean();
    ob_start();
    ?>
	<div id="normal-sortables" class="meta-box-sortables ui-sortable">
		<div style="display: block;" id="event-date-time" class="postbox">
			<div class="handlediv" title="Click to toggle"><br>
			</div>
			<h3 class="hndle"> <span>
	<?php 
    _e('Event Date/Times', 'event_espresso');
    ?>
				</span> </h3>
			<div class="inside">
				<table width="100%" border="0" cellpadding="5">
					<tr valign="top">
						<td class="a"><fieldset id="add-reg-dates">
								<legend>
	<?php 
    _e('Registration Dates', 'event_espresso');
    ?>
								</legend>
								<p>
									<label for="registration_start"> <?php 
    echo __('Registration Start:', 'event_espresso');
    ?>
</label>
									<input type="text" class="datepicker" size="15" id="registration_start" name="registration_start"  value="<?php 
    echo $registration_start;
    ?>
" />
								</p>
								<p>
									<label for="registration_end"><?php 
    echo __('Registration End:', 'event_espresso');
    ?>
</label>
									<input type="text" class="datepicker" size="15" id="registration_end" name="registration_end"  value="<?php 
    echo $registration_end;
    ?>
" />
								</p>
							</fieldset>
							<fieldset>
								<legend>
	<?php 
    _e('Event Dates', 'event_espresso');
    ?>
								</legend>
								<p>
									<label for="start_date"><?php 
    echo __('Event Start Date', 'event_espresso');
    ?>
</label>
									<input type="text" class="datepicker" size="15" id="start_date" name="start_date" value="<?php 
    echo $start_date;
    ?>
" />
								</p>
								<p>
									<label for="end_date"><?php 
    echo __('Event End Date', 'event_espresso');
    ?>
</label>
									<input type="text" class="datepicker" size="15" id="end_date" name="end_date" value="<?php 
    echo $end_date;
    ?>
" />
								</p>
							</fieldset>
										<?php 
    if (isset($org_options['use_event_timezones']) && $org_options['use_event_timezones'] == 'Y' && $espresso_premium == true) {
        ?>
								<fieldset id="event-timezone">
									<p>
										<label>
								<?php 
        _e('Event Timezone', 'event_espresso');
        ?>
											:</label>
		<?php 
        echo eventespresso_ddtimezone($event_id);
        ?>
</p>
								</fieldset>
									<?php 
    }
    ?>
</td>
								<?php 
    // ADD TIME REGISTRATION
    ?>
						<td class="b"><fieldset id="add-register-times">
								<legend>
	<?php 
    _e('Registration Times', 'event_espresso');
    ?>
								</legend>
									<?php 
    echo event_espresso_timereg_editor($event_id);
    ?>
							</fieldset>
							<fieldset id="add-event-times">
								<legend>
							<?php 
    _e('Event Times', 'event_espresso');
    ?>
								</legend>
									<?php 
    echo event_espresso_time_editor($event_id);
    ?>
							</fieldset>
									<?php 
    if ((!isset($org_options['use_event_timezones']) || $org_options['use_event_timezones'] != 'Y') && $espresso_premium == true) {
        ?>
								<p><span class="run-in">
								<?php 
        _e('Current Time', 'event_espresso');
        ?>
										:</span> <span class="current-date"> <?php 
        echo date(get_option('date_format')) . ' ' . date(get_option('time_format'));
        ?>
</span> <a class="change-date-time" href="options-general.php" target="_blank">
		<?php 
        _e('Change timezone and date format settings?', 'event_espresso');
        ?>
									</a></p>
		<?php 
    }
    ?>
</td>
					</tr>
				</table>
			</div>
		</div>
		<?php 
    /**
     * Load the recurring events form if the add-on has been installed.	*
     */
    if (defined('EVENT_ESPRESSO_RECURRENCE_TABLE') && $espresso_premium == true) {
        require_once EVENT_ESPRESSO_RECURRENCE_FULL_PATH . "functions/re_view_functions.php";
        //For now, only the recurring events will show the form
        if ($recurrence_id > 0) {
            event_espresso_re_form($recurrence_id);
        }
    }
    ?>
		<div id="event-pricing" class="postbox">
					<?php 
    defined('EVENT_ESPRESSO_MEMBERS_DIR') ? $members_active = 'class="members-active"' : ($members_active = '');
    ?>
			<div class="handlediv" title="Click to toggle"><br>
			</div>
			<h3 class="hndle"> <span>
	<?php 
    _e('Event Pricing', 'event_espresso');
    ?>
				</span> </h3>
			<div class="inside">
				<table <?php 
    echo $members_active;
    ?>
width="100%" border="0" cellpadding="5">
					<tr valign="top">
						<td id="standard-pricing" class="a"><?php 
    event_espresso_multi_price_update($event_id);
    //Standard pricing
    ?>
</td>
						<?php 
    //If the members addon is installed, define member only event settings
    if (defined('EVENT_ESPRESSO_MEMBERS_DIR') && $espresso_premium == true) {
        ?>
							<td id="member-pricing" class="b"><?php 
        echo event_espresso_member_only_pricing($event_id);
        //Show the the member only pricing options.
        ?>
</td>
	<?php 
    }
    ?>
					</tr>
				</table>
			</div>
		</div>
		<h2>
	<?php 
    _e('Advanced Options', 'event_espresso');
    ?>
		</h2>
		<?php 
    if ($espresso_premium == true) {
        do_action('action_hook_espresso_edit_event_left_column_advanced_options_top', $event_id);
    }
    ?>
		<div id="event-location" class="postbox">
			<div class="handlediv" title="Click to toggle"><br />
			</div>
			<h3 class="hndle"> <span>
	<?php 
    _e('Additional Event/Venue Information', 'event_espresso');
    ?>
				</span> </h3>
			<div class="inside">
				<table width="100%" border="0" cellpadding="5">
					<tr valign="top">

	<?php 
    if (function_exists('espresso_venue_dd') && $org_options['use_venue_manager'] == 'Y' && $espresso_premium == true) {
        $ven_type = 'class="use-ven-manager"';
        ?>
							<td <?php 
        echo $ven_type;
        ?>
><fieldset id="venue-manager">
									<legend><?php 
        echo __('Venue Information', 'event_espresso');
        ?>
</legend>
									<?php 
        if (!espresso_venue_dd()) {
            ?>
										<p class="info"><b>
										<?php 
            _e('You have not created any venues yet.', 'event_espresso');
            ?>
											</b></p>
										<p><a href="admin.php?page=event_venues"><?php 
            echo __('Add venues to the Venue Manager', 'event_espresso');
            ?>
</a></p>
							<?php 
        } else {
            ?>
								<?php 
            echo espresso_venue_dd($venue_id);
            ?>
							<?php 
        }
        ?>
								</fieldset></td>
		<?php 
    } else {
        $ven_type = 'class="manual-venue"';
        ?>
							<td <?php 
        echo $ven_type;
        ?>
><fieldset>
									<legend>
											<?php 
        _e('Physical Location', 'event_espresso');
        ?>
									</legend>
									<p>
										<label for="phys-addr">
		<?php 
        _e('Address:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="phys-addr" tabindex="100"  type="text"  value="<?php 
        echo $address;
        ?>
" name="address" />
									</p>
									<p>
										<label for="phys-addr-2">
		<?php 
        _e('Address 2:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="phys-addr-2" tabindex="101"  type="text"  value="<?php 
        echo $address2;
        ?>
" name="address2" />
									</p>
									<p>
										<label for="phys-city">
		<?php 
        _e('City:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="phys-city" tabindex="102"  type="text"  value="<?php 
        echo $city;
        ?>
" name="city" />
									</p>
									<p>
										<label for="phys-state">
		<?php 
        _e('State:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="phys-state" tabindex="103"  type="text"  value="<?php 
        echo $state;
        ?>
" name="state" />
									</p>
									<p>
										<label for="zip-postal">
		<?php 
        _e('Zip/Postal Code:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="zip-postal"  tabindex="104"  type="text"  value="<?php 
        echo $zip;
        ?>
" name="zip" />
									</p>
									<p>
										<label for="phys-country">
										<?php 
        _e('Country:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="phys-country" tabindex="105"  type="text"  value="<?php 
        echo $country;
        ?>
" name="country" />
									</p>
									<p>
		<?php 
        _e('Google Map Link (for email):', 'event_espresso');
        ?>
										<br />
		<?php 
        echo $google_map_link;
        ?>
 </p>
								</fieldset></td>
							<td <?php 
        echo $ven_type;
        ?>
>

								<fieldset>

									<legend>
											<?php 
        _e('Venue Information', 'event_espresso');
        ?>
									</legend>
									<p>
										<label for="ven-title">
		<?php 
        _e('Title:', 'event_espresso');
        ?>
										</label>
										<input size="20"id="ven-title" tabindex="106"  type="text"  value="<?php 
        echo $venue_title;
        ?>
" name="venue_title" />
									</p>
									<p>
										<label for="ven-website">
		<?php 
        _e('Website:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="ven-website" tabindex="107"  type="text"  value="<?php 
        echo $venue_url;
        ?>
" name="venue_url" />
									</p>
									<p>
										<label for="ven-phone">
		<?php 
        _e('Phone:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="ven-phone" tabindex="108"  type="text"  value="<?php 
        echo $venue_phone;
        ?>
" name="venue_phone" />
									</p>
									<p>
										<label for="ven-image">
									<?php 
        _e('Image:', 'event_espresso');
        ?>
										</label>
										<input size="20" id="ven-image" tabindex="110"  type="text"  value="<?php 
        echo $venue_image;
        ?>
" name="venue_image" />
									</p>
									<?php 
    }
    ?>
						</td>

						<td <?php 
    echo $ven_type;
    ?>
><fieldset id="virt-location">
								<legend>
										<?php 
    _e('Virtual Location', 'event_espresso');
    ?>
								</legend>
								<p>
									<label for="virt-phone">
	<?php 
    _e('Phone:', 'event_espresso');
    ?>
									</label>
									<input size="20" id="virt-phone" type="text" tabindex="111" value="<?php 
    echo $phone;
    ?>
" name="phone" />
								</p>
								<p>
									<label for="url-event">
	<?php 
    _e('URL of Event:', 'event_espresso');
    ?>
									</label>
									<textarea id="url-event" cols="30" rows="4" tabindex="112"  name="virtual_url"><?php 
    echo $virtual_url;
    ?>
</textarea>
								</p>
								<p>
									<label for="call-in-num">
	<?php 
    _e('Call in Number:', 'event_espresso');
    ?>
									</label>
									<input id="call-in-num" size="20" tabindex="113"  type="text"  value="<?php 
    echo $virtual_phone;
    ?>
" name="virtual_phone" />
								</p>
							</fieldset></td>
					</tr>

				</table>
			</div>
		</div>
		<!-- /event-location-->
					<?php 
    if ($espresso_premium == true) {
        ?>
			<div id="event-meta" class="postbox">
				<div class="handlediv" title="Click to toggle"><br>
				</div>
				<h3 class="hndle"> <span>
		<?php 
        _e('Event Meta', 'event_espresso');
        ?>
					</span> </h3>
				<div class="inside">
		<?php 
        event_espresso_meta_edit($event_meta);
        ?>
				</div>
			</div>
	<?php 
    }
    ?>
		<!-- /event-meta-->
		<div id="confirmation-email" class="postbox">
			<div class="handlediv" title="Click to toggle"><br />
			</div>
			<h3 class="hndle"> <span>
	<?php 
    _e('Email Confirmation:', 'event_espresso');
    ?>
				</span> </h3>
			<div class="inside">
				<div id="emaildescriptiondivrich" class="postarea">
					<div class="email-conf-opts">
						<p><?php 
    echo __('Send custom confirmation emails for this event?', 'event_espresso') . ' ' . select_input('send_mail', $values, $send_mail);
    ?>
 <?php 
    echo '<a class="thickbox" href="#TB_inline?height=300&width=400&inlineId=custom_email_info"><img src="' . EVENT_ESPRESSO_PLUGINFULLURL . '/images/question-frame.png" width="16" height="16" /></a>';
    ?>
</p>
								<?php 
    if ($espresso_premium == true) {
        ?>
							<p>
		<?php 
        _e('Use a ', 'event_espresso');
        ?>
								<a href="admin.php?page=event_emails" target="_blank">
							<?php 
        _e('pre-existing email', 'event_espresso');
        ?>
								</a>? <?php 
        echo espresso_db_dropdown('id', 'email_name', EVENTS_EMAIL_TABLE, 'email_name', $email_id, 'desc') . ' <a class="thickbox" href="#TB_inline?height=300&width=400&inlineId=email_manager_info"><img src="' . EVENT_ESPRESSO_PLUGINFULLURL . '/images/question-frame.png" width="16" height="16" /></a>';
        ?>
 </p>
							<br />
							<em>OR</em>
	<?php 
    }
    ?>
						<p>
						<?php 
    _e('Create a custom email:', 'event_espresso');
    ?>
  <?php 
    echo '<a class="thickbox" href="#TB_inline?height=300&width=400&inlineId=event_custom_emails"><img src="' . EVENT_ESPRESSO_PLUGINFULLURL . '/images/question-frame.png" width="16" height="16" /></a>';
    ?>
						</p>
					</div>

					<div class="postbox">
						<?php 
    //echo '<p>version_compare ='.(version_compare($wp_version, $wp_min_version) >= 0).'</p>';
    if (function_exists('wp_editor')) {
        $args = array("textarea_rows" => 5, "textarea_name" => "conf_mail", "editor_class" => "my_editor_custom");
        wp_editor(espresso_admin_format_content($conf_mail), "conf_mail", $args);
    } else {
        echo '<textarea name="conf_mail" class="theEditor" id="conf_mail">' . espresso_admin_format_content($conf_mail) . '</textarea>';
        espresso_tiny_mce();
    }
    ?>
											<?php 
    /* ?>  <textarea name="conf_mail" class="theEditor" id="conf_mail"><?php echo espresso_admin_format_content($conf_mail); ?></textarea><?php */
    ?>
						<table id="email-confirmation-form" cellspacing="0">
							<tr>
								<td class="aer-word-count"></td>
								<td class="autosave-info"><span><a class="thickbox" href="#TB_inline?height=300&width=400&inlineId=custom_email_info">
	<?php 
    _e('View Custom Email Tags', 'event_espresso');
    ?>
										</a> | <a class="thickbox" href="#TB_inline?height=300&width=400&inlineId=custom_email_example">
	<?php 
    _e('Email Example', 'event_espresso');
    ?>
										</a></span></td>
							</tr>
						</table>
					</div>
				</div>
			</div>
		</div>
		<!-- /confirmation-email-->
	<?php 
    if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/event-management/edit_event_post.php')) {
        require_once EVENT_ESPRESSO_PLUGINFULLPATH . "includes/admin-files/event-management/edit_event_post.php";
    }
    ?>
	</div>
	<!-- /normal-sortables-->
	<?php 
    $center_metabox_content = ob_get_clean();
    espresso_choose_layout($main_post_content, $sidebar_content, $center_metabox_content);
    include_once 'create_events_help.php';
    ?>
	<?php 
    wp_nonce_field('espresso_verify_update_event_nonce', 'nonce_verify_update_event');
    //Security check using nonce
    ?>
	<input type="hidden" name="edit_action" value="update">
	<input type="hidden" name="date_submitted" value="<?php 
    echo $date_submitted;
    ?>
">
	<input type="hidden" name="recurrence_id" value="<?php 
    echo $recurrence_id;
    ?>
">
	<input type="hidden" name="action" value="edit">
	<input type="hidden" name="event_id" value="<?php 
    echo $event_id;
    ?>
">
	<script type="text/javascript" charset="utf-8">
		//<![CDATA[
		jQuery(document).ready(function() {

			postboxes.add_postbox_toggles('events');

			jQuery(".datepicker" ).datepicker({
				changeMonth: true,
				changeYear: true,
				dateFormat: "yy-mm-dd",
				showButtonPanel: true
			});
	
			//Image upload		
			var header_clicked = false;
			jQuery('#upload_image_button').click(function() {
				formfield = jQuery('#upload_image').attr('name');
				tb_show('', 'media-upload.php?type=image&amp;TB_iframe=1');
				jQuery('p.event-featured-thumb').addClass('old');
				header_clicked = true;
				return false;
			});		
					
			window.original_send_to_editor = window.send_to_editor;
		
			window.send_to_editor = function(html) {
				if(header_clicked) {
					imgurl = jQuery('img',html).attr('src');
					jQuery('#' + formfield).val(imgurl);
					jQuery('#featured-image').append("<p id='image-display'><img class='show-selected-image' src='"+imgurl+"' alt='' /></p>");
					header_clicked = false;
					tb_remove();
			
				} else {
					window.original_send_to_editor(html);
				}
			}
		
			// process the remove link in the metabox
			jQuery('#remove-image').click(function(){
				var answer = confirm("<?php 
    _e("Do you really want to delete this image? Please remember to update your event to complete the removal.", 'event_espresso');
    ?>
");
				if (answer){
					jQuery("#upload_image").val('');
					jQuery("p.event-featured-thumb").remove();
					jQuery("p#image-display").remove();
					jQuery('#remove-image').remove();
					jQuery("#show_thumb_in_lists, #show_on_calendar, #show_thumb_in_regpage").val(false);
				}
				return false;
			});
	
	
		});
		//]]>
	</script>
	<?php 
}
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_confirm_registration($registration_id)
{
    global $wpdb, $org_options;
    //Get the questions for the attendee
    $questions = $wpdb->get_results("SELECT ea.answer, eq.question\n\t\t\t\t\t\tFROM " . EVENTS_ANSWER_TABLE . " ea\n\t\t\t\t\t\tLEFT JOIN " . EVENTS_QUESTION_TABLE . " eq ON eq.id = ea.question_id\n\t\t\t\t\t\tWHERE ea.registration_id = '" . $registration_id . "' AND system_name IS NULL ORDER BY eq.sequence asc ");
    //echo $wpdb->last_query;
    $display_questions = '';
    foreach ($questions as $question) {
        $display_questions .= '<p class="espresso_questions"><strong>' . $question->question . '</strong>:<br /> ' . str_replace(',', '<br />', $question->answer) . '</p>';
    }
    //Get the event information
    $events = $wpdb->get_results("SELECT ed.* FROM " . EVENTS_DETAIL_TABLE . " ed\n\t\t\t\t\t\tJOIN " . EVENTS_ATTENDEE_TABLE . " ea\n\t\t\t\t\t\tON ed.id = ea.event_id\n\t\t\t\t\t\tWHERE 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 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $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 = '<a href="' . $event_url . '">' . $event_name . '</a>';
    $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 = $attendee->payment_date;
        $phone = $attendee->phone;
        $event_time = $attendee->event_time;
        $end_time = $attendee->end_time;
        $date = $attendee->date;
        $pre_approve = $attendee->pre_approve;
    }
    ####### Added by wp-developers ##############
    $pre_approval_check = is_attendee_approved($event_id, $attendee_id);
    ###########################################
    ###### Modified by wp-developers ###############
    if ($pre_approval_check) {
        //Pull in the "Thank You" page template
        if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "payment_page.php")) {
            require_once EVENT_ESPRESSO_TEMPLATE_DIR . "payment_page.php";
            //This is the path to the template file if available
        } else {
            require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/payment_page.php";
        }
        if ($amount_pd != '0.00') {
            //Show payment options
            if (file_exists(EVENT_ESPRESSO_GATEWAY_DIR . "gateway_display.php")) {
                require_once EVENT_ESPRESSO_GATEWAY_DIR . "gateway_display.php";
            } else {
                require_once EVENT_ESPRESSO_PLUGINFULLPATH . "gateways/gateway_display.php";
            }
            //Check to see if the site owner wants to send an confirmation eamil before payment is recieved.
            if ($org_options['email_before_payment'] == 'Y') {
                event_espresso_email_confirmations(array('registration_id' => $registration_id, 'send_admin_email' => 'true', 'send_attendee_email' => 'true'));
            }
        } else {
            event_espresso_email_confirmations(array('registration_id' => $registration_id, 'send_admin_email' => 'true', 'send_attendee_email' => 'true'));
        }
    } else {
        if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/process-registration/pending_approval_page.php')) {
            require_once 'pending_approval_page.php';
            echo espresso_pending_registration_approval($registration_id);
            return;
        }
    }
    ################ End ##############################
    //return __('Your Registration Has Been Confirmed', 'event_espresso');
    //unset($_SESSION['espresso_session']['id']);
    //session_destroy();
}
 function espresso_list_builder($sql, $template_file, $before, $after)
 {
     global $wpdb, $org_options;
     //echo 'This page is located in ' . get_option( 'upload_path' );
     $event_page_id = $org_options['event_page_id'];
     $currency_symbol = $org_options['currency_symbol'];
     $events = $wpdb->get_results($sql);
     $category_id = $wpdb->last_result[0]->id;
     $category_name = $wpdb->last_result[0]->category_name;
     $category_desc = html_entity_decode(wpautop($wpdb->last_result[0]->category_desc));
     $display_desc = $wpdb->last_result[0]->display_desc;
     if ($display_desc == 'Y') {
         echo '<p id="events_category_name-' . $category_id . '" class="events_category_name">' . stripslashes_deep($category_name) . '</p>';
         echo wpautop($category_desc);
     }
     foreach ($events as $event) {
         $event_id = $event->id;
         $event_name = $event->event_name;
         $event_identifier = $event->event_identifier;
         $active = $event->is_active;
         $registration_start = $event->registration_start;
         $registration_end = $event->registration_end;
         $start_date = $event->start_date;
         $end_date = $event->end_date;
         $reg_limit = $event->reg_limit;
         $event_address = $event->address;
         $event_address2 = $event->address2;
         $event_city = $event->city;
         $event_state = $event->state;
         $event_zip = $event->zip;
         $event_country = $event->country;
         $member_only = $event->member_only;
         $externalURL = $event->externalURL;
         $recurrence_id = $event->recurrence_id;
         $allow_overflow = $event->allow_overflow;
         $overflow_event_id = $event->overflow_event_id;
         //Address formatting
         $location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $event_country : '');
         //Google map link creation
         $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
         //These variables can be used with other the espresso_countdown, espresso_countup, and espresso_duration functions and/or any javascript based functions.
         $start_timestamp = espresso_event_time($event_id, 'start_timestamp', get_option('time_format'));
         $end_timestamp = espresso_event_time($event_id, 'end_timestamp', get_option('time_format'));
         //This can be used in place of the registration link if you are usign the external URL feature
         $registration_url = $externalURL != '' ? $externalURL : get_option('siteurl') . '/?page_id=' . $event_page_id . '&regevent_action=register&event_id=' . $event_id;
         if (!is_user_logged_in() && get_option('events_members_active') == 'true' && $member_only == 'Y') {
             //Display a message if the user is not logged in.
             //_e('Member Only Event. Please ','event_espresso') . event_espresso_user_login_link() . '.';
         } else {
             //Serve up the event list
             //As of version 3.0.17 the event lsit details have been moved to event_list_display.php
             echo $before = $before == '' ? '' : $before;
             include 'templates/' . $template_file;
             echo $after = $after == '' ? '' : $after;
         }
     }
     //Check to see how many database queries were performed
     //echo '<p>Database Queries: ' . get_num_queries() .'</p>';
 }
Exemple #6
0
    function register_attendees($single_event_id = NULL, $event_id_sc = 0, $reg_form_only = false)
    {
        //Declare the $data object
        $data = (object) array('event' => NULL);
        do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
        //Run code for the seating chart addon
        if (function_exists('espresso_seating_version')) {
            do_action('ee_seating_chart_css');
            do_action('ee_seating_chart_js');
            do_action('ee_seating_chart_flush_expired_seats');
        }
        global $wpdb, $org_options;
        if (isset($_REQUEST['ee']) && $_REQUEST['ee'] != '') {
            $_REQUEST['event_id'] = $_REQUEST['ee'];
        }
        $event_id = $event_id_sc != '0' ? $event_id_sc : $_REQUEST['event_id'];
        if (!empty($_REQUEST['event_id_time'])) {
            $pieces = explode('|', $_REQUEST['event_id_time'], 3);
            $event_id = $pieces[0];
            $start_time = $pieces[1];
            $time_id = $pieces[2];
            $time_selected = true;
        }
        //The following variables are used to get information about your organization
        $event_page_id = $org_options['event_page_id'];
        $Organization = stripslashes_deep($org_options['organization']);
        $Organization_street1 = $org_options['organization_street1'];
        $Organization_street2 = $org_options['organization_street2'];
        $Organization_city = $org_options['organization_city'];
        $Organization_state = $org_options['organization_state'];
        $Organization_zip = $org_options['organization_zip'];
        $contact = $org_options['contact_email'];
        $registrar = $org_options['contact_email'];
        $currency_format = isset($org_options['currency_format']) ? $org_options['currency_format'] : '';
        $message = $org_options['message'];
        //Build event queries
        $sql = "SELECT e.*, ese.start_time, ese.end_time ";
        if (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 . " e ";
        $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id = e.id ";
        if (isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y') {
            $sql .= " LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " r ON r.event_id = e.id LEFT JOIN " . EVENTS_VENUE_TABLE . " v ON v.id = r.venue_id ";
        }
        $sql .= " WHERE e.is_active='Y' ";
        $sql .= " AND e.event_status != 'D' ";
        //Get the ID of a single event
        if ($single_event_id != NULL) {
            //If a single event needs to be displayed, get its ID
            $sql .= " AND event_identifier = '" . $single_event_id . "' ";
        } else {
            $sql .= " AND e.id = '" . $event_id . "' LIMIT 0,1";
        }
        //Support for diarise
        if (!empty($_REQUEST['post_event_id'])) {
            $sql = "SELECT e.* FROM " . EVENTS_DETAIL_TABLE . ' e';
            $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id = e.id ";
            $sql .= " WHERE post_id = '" . $_REQUEST['post_event_id'] . "' ";
            $sql .= " LIMIT 0,1";
        }
        $data->event = $wpdb->get_row($wpdb->prepare($sql, NULL), OBJECT);
        $num_rows = $wpdb->num_rows;
        //Build the registration page
        if ($num_rows > 0) {
            //These are the variables that can be used throughout the registration page
            //foreach ($events as $event) {
            global $this_event_id;
            $event_id = $data->event->id;
            $this_event_id = $event_id;
            $event_name = stripslashes_deep($data->event->event_name);
            $event_desc = stripslashes_deep($data->event->event_desc);
            $display_desc = $data->event->display_desc;
            if ($reg_form_only == true) {
                $display_desc = "N";
            }
            $display_reg_form = $data->event->display_reg_form;
            $event_address = $data->event->address;
            $event_address2 = $data->event->address2;
            $event_city = $data->event->city;
            $event_state = $data->event->state;
            $event_zip = $data->event->zip;
            $event_country = $data->event->country;
            $event_description = stripslashes_deep($data->event->event_desc);
            $event_identifier = $data->event->event_identifier;
            $event_cost = isset($data->event->event_cost) ? $data->event->event_cost : "0.00";
            $member_only = $data->event->member_only;
            $reg_limit = $data->event->reg_limit;
            $allow_multiple = $data->event->allow_multiple;
            $start_date = $data->event->start_date;
            $end_date = $data->event->end_date;
            $allow_overflow = $data->event->allow_overflow;
            $overflow_event_id = $data->event->overflow_event_id;
            //Venue details
            $venue_title = $data->event->venue_title;
            $venue_url = $data->event->venue_url;
            $venue_image = $data->event->venue_image;
            $venue_phone = $data->event->venue_phone;
            $venue_address = '';
            $venue_address2 = '';
            $venue_city = '';
            $venue_state = '';
            $venue_zip = '';
            $venue_country = '';
            global $event_meta;
            $event_meta = unserialize($data->event->event_meta);
            //Venue information
            if ($org_options['use_venue_manager'] == 'Y') {
                $event_address = $data->event->venue_address;
                $event_address2 = $data->event->venue_address2;
                $event_city = $data->event->venue_city;
                $event_state = $data->event->venue_state;
                $event_zip = $data->event->venue_zip;
                $event_country = $data->event->venue_country;
                //Leaving these variables intact, just in case people wnat to use them
                $venue_title = $data->event->venue_name;
                $venue_address = $data->event->venue_address;
                $venue_address2 = $data->event->venue_address2;
                $venue_city = $data->event->venue_city;
                $venue_state = $data->event->venue_state;
                $venue_zip = $data->event->venue_zip;
                $venue_country = $data->event->venue_country;
                global $venue_meta;
                $add_venue_meta = array('venue_title' => $data->event->venue_name, 'venue_address' => $data->event->venue_address, 'venue_address2' => $data->event->venue_address2, 'venue_city' => $data->event->venue_city, 'venue_state' => $data->event->venue_state, 'venue_country' => $data->event->venue_country);
                $venue_meta = isset($data->event->venue_meta) && $data->event->venue_meta != '' && (isset($add_venue_meta) && $add_venue_meta != '') ? array_merge(unserialize($data->event->venue_meta), $add_venue_meta) : '';
                //print_r($venue_meta);
            }
            $virtual_url = stripslashes_deep($data->event->virtual_url);
            $virtual_phone = stripslashes_deep($data->event->virtual_phone);
            //Address formatting
            $location = (!empty($event_address) ? $event_address : '') . (!empty($event_address2) ? '<br />' . $event_address2 : '') . (!empty($event_city) ? '<br />' . $event_city : '') . (!empty($event_state) ? ', ' . $event_state : '') . (!empty($event_zip) ? '<br />' . $event_zip : '') . (!empty($event_country) ? '<br />' . $event_country : '');
            //Google map link creation
            $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
            $question_groups = unserialize($data->event->question_groups);
            $reg_start_date = $data->event->registration_start;
            $reg_end_date = $data->event->registration_end;
            $today = date("Y-m-d");
            if (isset($data->event->timezone_string) && $data->event->timezone_string != '') {
                $timezone_string = $data->event->timezone_string;
            } else {
                $timezone_string = get_option('timezone_string');
                if (!isset($timezone_string) || $timezone_string == '') {
                    $timezone_string = 'America/New_York';
                }
            }
            $t = time();
            $today = date_at_timezone("Y-m-d H:i A", $timezone_string, $t);
            //echo event_date_display($today, get_option('date_format'). ' ' .get_option('time_format')) . ' ' . $timezone_string;
            //echo espresso_ddtimezone_simple();
            $reg_limit = $data->event->reg_limit;
            $additional_limit = $data->event->additional_limit;
            //If the coupon code system is intalled then use it
            $use_coupon_code = $data->event->use_coupon_code;
            //If the groupon code addon is installed, then use it
            $use_groupon_code = $data->event->use_groupon_code;
            //Set a default value for additional limit
            if ($additional_limit == '') {
                $additional_limit = '5';
            }
            $num_attendees = get_number_of_attendees_reg_limit($event_id, 'num_attendees');
            //Get the number of attendees
            $available_spaces = get_number_of_attendees_reg_limit($event_id, 'available_spaces');
            //Gets a count of the available spaces
            $number_available_spaces = get_number_of_attendees_reg_limit($event_id, 'number_available_spaces');
            //Gets the number of available spaces
            //echo $number_available_spaces;
            global $all_meta;
            $all_meta = array('event_id' => $event_id, 'event_name' => stripslashes_deep($event_name), 'event_desc' => stripslashes_deep($event_desc), 'event_address' => $event_address, 'event_address2' => $event_address2, 'event_city' => $event_city, 'event_state' => $event_state, 'event_zip' => $event_zip, 'event_country' => $event_country, 'venue_title' => $venue_title, 'venue_address' => $venue_address, 'venue_address2' => $venue_address2, 'venue_city' => $venue_city, 'venue_state' => $venue_state, 'venue_country' => $venue_country, 'location' => $location, 'is_active' => $data->event->is_active, 'event_status' => $data->event->event_status, 'contact_email' => empty($data->event->alt_email) ? $org_options['contact_email'] : $data->event->alt_email, 'start_time' => empty($data->event->start_time) ? '' : $data->event->start_time, 'end_time' => empty($data->event->end_time) ? '' : $data->event->end_time, 'registration_startT' => $data->event->registration_startT, 'registration_start' => $data->event->registration_start, 'registration_endT' => $data->event->registration_endT, 'registration_end' => $data->event->registration_end, 'start_date' => event_espresso_no_format_date($start_date, get_option('date_format')), 'end_date' => event_date_display($end_date, get_option('date_format')), 'google_map_link' => $google_map_link);
            //print_r($all_meta);
            //This function gets the status of the event.
            $is_active = array();
            $is_active = event_espresso_get_is_active(0, $all_meta);
            //echo '<p>'.print_r(event_espresso_get_is_active($event_id, $all_meta)).'</p>';;
            if ($org_options['use_captcha'] == 'Y' && empty($_REQUEST['edit_details'])) {
                ?>
                <script type="text/javascript">
                    var RecaptchaOptions = {
                        theme : '<?php 
                echo $org_options['recaptcha_theme'] == '' ? 'red' : $org_options['recaptcha_theme'];
                ?>
',
                        lang : '<?php 
                echo $org_options['recaptcha_language'] == '' ? 'en' : $org_options['recaptcha_language'];
                ?>
'
                    };
                </script>
                <?php 
            }
            //This is the start of the registration form. This is where you can start editing your display.
            //(Shows the regsitration form if enough spaces exist)
            if ($num_attendees >= $reg_limit) {
                ?>
                <div class="espresso_event_full event-display-boxes" id="espresso_event_full-<?php 
                echo $event_id;
                ?>
">
                    <h3 class="event_title"><?php 
                echo stripslashes_deep($event_name);
                ?>
</h3>
                    <div class="event-messages">
                        <p class="event_full"><strong><?php 
                _e('We are sorry but this event has reached the maximum number of attendees!', 'event_espresso');
                ?>
</strong></p>
                        <p class="event_full"><strong><?php 
                _e('Please check back in the event someone cancels.', 'event_espresso');
                ?>
</strong></p>
                        <p class="num_attendees"><?php 
                _e('Current Number of Attendees:', 'event_espresso');
                ?>
 <?php 
                echo $num_attendees;
                ?>
</p>
                    </div>
                <?php 
                $num_attendees = get_number_of_attendees_reg_limit($event_id, 'num_attendees');
                //Get the number of attendees. Please visit http://eventespresso.com/forums/?p=247 for available parameters for the get_number_of_attendees_reg_limit() function.
                if ($num_attendees >= $reg_limit && ($allow_overflow == 'Y' && $overflow_event_id != 0)) {
                    ?>
                        <p id="register_link-<?php 
                    echo $overflow_event_id;
                    ?>
" class="register-link-footer"><a class="a_register_link ui-button ui-button-big ui-priority-primary ui-state-default ui-state-hover ui-state-focus ui-corner-all" id="a_register_link-<?php 
                    echo $overflow_event_id;
                    ?>
" href="<?php 
                    echo espresso_reg_url($overflow_event_id);
                    ?>
" title="<?php 
                    echo stripslashes_deep($event_name);
                    ?>
"><?php 
                    _e('Join Waiting List', 'event_espresso');
                    ?>
</a></p>
                    <?php 
                }
                ?>
                </div>

                    <?php 
            } else {
                $member_options = get_option('events_member_settings');
                //echo "<pre>".print_r($member_options,true)."</pre>";
                //If enough spaces exist then show the form
                //Check to see if the Members plugin is installed.
                if (function_exists('espresso_members_installed') && espresso_members_installed() == true && !is_user_logged_in() && ($member_only == 'Y' || $member_options['member_only_all'] == 'Y')) {
                    event_espresso_user_login();
                } else {
                    //Serve up the registration form
                    //As of version 3.0.17 the registration details have been moved to registration_form.php
                    require 'registration_page_display.php';
                }
            }
            //End if ($num_attendees >= $reg_limit) (Shows the regsitration form if enough spaces exist)
        } else {
            //If there are no results from the query, display this message
            echo '<h3>' . __('This event has expired or is no longer available.', 'event_espresso') . '</h3>';
        }
        echo espresso_registration_footer();
        //Check to see how many database queries were performed
        //echo '<p>Database Queries: ' . get_num_queries() .'</p>';
    }
Exemple #7
0
 function event_espresso_get_event_details($attributes)
 {
     global $wpdb, $org_options, $events_in_session;
     $event_page_id = $org_options['event_page_id'];
     $currency_symbol = isset($org_options['currency_symbol']) ? $org_options['currency_symbol'] : '';
     $ee_search = isset($_REQUEST['ee_search']) && $_REQUEST['ee_search'] == 'true' && isset($_REQUEST['ee_name']) && !empty($_REQUEST['ee_name']) ? true : false;
     $ee_search_string = isset($_REQUEST['ee_name']) && !empty($_REQUEST['ee_name']) ? sanitize_text_field($_REQUEST['ee_name']) : '';
     //Check for Multi Event Registration
     $multi_reg = false;
     $category_name = '';
     if (function_exists('event_espresso_multi_reg_init')) {
         $multi_reg = true;
     }
     $default_attributes = array('category_identifier' => NULL, 'staff_id' => NULL, 'allow_override' => 0, 'show_expired' => 'false', 'show_secondary' => 'false', 'show_deleted' => 'false', 'show_recurrence' => 'true', 'limit' => '0', 'order_by' => 'NULL', 'sort' => 'ASC', 'css_class' => 'NULL', 'current_page' => 1, 'events_per_page' => 50, 'num_page_links_to_display' => 10, 'use_wrapper' => true);
     // loop thru default atts
     foreach ($default_attributes as $key => $default_attribute) {
         // check if att exists
         if (!isset($attributes[$key])) {
             $attributes[$key] = $default_attribute;
         }
     }
     // now extract shortcode attributes
     extract($attributes);
     //Create the query
     $DISTINCT = $ee_search == true ? "DISTINCT" : '';
     $sql = "SELECT {$DISTINCT} e.*, ese.start_time, ese.end_time, p.event_cost ";
     //Category sql
     $sql .= $category_identifier != NULL && !empty($category_identifier) ? ", c.category_name, c.category_desc, c.display_desc, c.category_identifier" : '';
     //Venue sql
     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 " : '';
     //Staff sql
     isset($org_options['use_personnel_manager']) && $org_options['use_personnel_manager'] == 'Y' ? $sql .= ", st.name staff_name " : '';
     $sql .= " FROM " . EVENTS_DETAIL_TABLE . " e ";
     $sql .= $category_identifier != NULL && !empty($category_identifier) ? " JOIN " . EVENTS_CATEGORY_REL_TABLE . " r ON r.event_id = e.id  JOIN " . EVENTS_CATEGORY_TABLE . " c ON  c.id = r.cat_id " : '';
     //Venue sql
     isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y' ? $sql .= " LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " vr ON vr.event_id = e.id LEFT JOIN " . EVENTS_VENUE_TABLE . " v ON v.id = vr.venue_id " : '';
     //Venue sql
     isset($org_options['use_personnel_manager']) && $org_options['use_personnel_manager'] == 'Y' ? $sql .= " LEFT JOIN " . EVENTS_PERSONNEL_REL_TABLE . " str ON str.event_id = e.id LEFT JOIN " . EVENTS_PERSONNEL_TABLE . " st ON st.id = str.person_id " : '';
     $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id= e.id ";
     $sql .= " LEFT JOIN " . EVENTS_PRICES_TABLE . " p ON p.event_id=e.id ";
     $sql .= " WHERE is_active = 'Y' ";
     //Category sql
     $sql .= $category_identifier !== NULL && !empty($category_identifier) ? " AND c.category_identifier = '" . $category_identifier . "' " : '';
     //Staff sql
     $sql .= $staff_id !== NULL && !empty($staff_id) ? " AND st.id = '" . $staff_id . "' " : '';
     $sql .= $show_expired == 'false' ? " AND (e.start_date >= '" . date('Y-m-d') . "' OR e.event_status = 'O' OR e.registration_end >= '" . date('Y-m-d') . "') " : '';
     if ($show_expired == 'true') {
         $allow_override = 1;
     }
     //If using the [ESPRESSO_VENUE_EVENTS] shortcode
     $sql .= isset($use_venue_id) && $use_venue_id == true ? " AND v.id = '" . $venue_id . "' " : '';
     $sql .= $show_secondary == 'false' ? " AND e.event_status != 'S' " : '';
     $sql .= $show_deleted == 'false' ? " AND e.event_status != 'D' " : " AND e.event_status = 'D' ";
     if ($show_deleted == 'true') {
         $allow_override = 1;
     }
     //echo '<p>'.$order_by.'</p>';
     $sql .= $show_recurrence == 'false' ? " AND e.recurrence_id = '0' " : '';
     //Search query
     if ($ee_search) {
         // search for full original string within bracketed search options
         $sql .= " AND ( e.event_name LIKE '%{$ee_search_string}%' ";
         // array of common words that we don't want to waste time looking for
         $words_to_strip = array(' the ', ' a ', ' or ', ' and ');
         $words = str_replace($words_to_strip, ' ', $ee_search_string);
         // break words array into individual strings
         $words = explode(' ', $words);
         // search for each word  as an OR statement
         foreach ($words as $word) {
             $sql .= " OR e.event_name LIKE '%{$word}%' ";
         }
         // close the search options
         $sql .= " ) ";
     }
     $sql .= " GROUP BY e.id ";
     $sql .= $order_by != 'NULL' ? " ORDER BY " . $order_by . " " . $sort . " " : " ORDER BY date(start_date), id ASC ";
     $sql .= $limit > 0 ? ' LIMIT 0, ' . $limit : '';
     //echo $sql;
     //echo 'This page is located in ' . get_option( 'upload_path' );
     $events = $wpdb->get_results($sql);
     $category_id = isset($wpdb->last_result[0]->id) ? $wpdb->last_result[0]->id : '';
     $category_name = isset($wpdb->last_result[0]->category_name) ? $wpdb->last_result[0]->category_name : '';
     $category_identifier = isset($wpdb->last_result[0]->category_identifier) ? $wpdb->last_result[0]->category_identifier : '';
     $category_desc = isset($wpdb->last_result[0]->category_desc) ? html_entity_decode(wpautop($wpdb->last_result[0]->category_desc)) : '';
     $display_desc = isset($wpdb->last_result[0]->display_desc) ? $wpdb->last_result[0]->display_desc : '';
     $total_events = count($events);
     $total_pages = ceil($total_events / $events_per_page);
     $offset = ($current_page - 1) * $events_per_page;
     $events = array_slice($events, $offset, $events_per_page);
     //Debug
     //var_dump($events);
     if ($use_wrapper) {
         echo "<div id='event_wrapper'>";
     }
     $page_link_ar = array();
     foreach ($attributes as $key => $attribute) {
         if (!in_array($key, array('current_page', 'use_wrapper'))) {
             $page_link_ar[] = "{$key}=" . urlencode($attribute);
         }
     }
     $page_link = implode('&', $page_link_ar);
     echo "<div id='event_search_code' style='display:none;' data='{$page_link}'></div>";
     //css_class='$css_class' allow_override='$allow_override' events_per_page='$events_per_page' num_page_links_to_display='$num_page_links_to_display'></div>";
     echo "<div id='event_container_pagination' >";
     if ($total_pages > 1) {
         $mid = ceil($num_page_links_to_display / 2);
         if ($num_page_links_to_display % 2 == 0) {
             $back = $mid;
         } else {
             $back = $mid - 1;
         }
         $start = $current_page - $back;
         if ($start < 1) {
             $start = 1;
         }
         $end = $start + $num_page_links_to_display;
         if ($end > $total_pages) {
             $end = $total_pages;
         }
         $prev = $current_page - 1;
         $prev_no_more = '';
         if ($prev < 1) {
             $prev = 1;
             $prev_no_more = 'no_more';
         }
         $next = $current_page + 1;
         $next_no_more = '';
         if ($next > $total_pages) {
             $next = $total_pages;
             $next_no_more = 'no_more';
         }
         $espresso_paginate = "<div class='page_navigation'>";
         $espresso_paginate .= "<a href='#' current_page=1 class='event_paginate {$prev_no_more} ui-icon ui-icon-seek-first'>&lt;&lt;</a>";
         $espresso_paginate .= "<a href='#' current_page={$prev} class='event_paginate {$prev_no_more} ui-icon ui-icon-seek-prev'>&lt;</a>";
         if ($start > 1) {
             $espresso_paginate .= "<span class='ellipse less'>...</span>";
         }
         for ($i = $start; $i <= $end; $i++) {
             $active_page = '';
             if ($i == $current_page) {
                 $active_page = 'active_page';
             }
             $espresso_paginate .= "<a class='page_link event_paginate {$active_page} ' current_page={$i} href='#' style='display: block; '>{$i}</a>";
         }
         if ($end < $total_pages) {
             $espresso_paginate .= "<span class='ellipse more'>...</span>";
         }
         $espresso_paginate .= "<a href='#' current_page={$next} class='event_paginate {$next_no_more} ui-icon ui-icon-seek-next'>&gt;</a>";
         $espresso_paginate .= "<a href='#' current_page={$total_pages} class='event_paginate {$next_no_more} ui-icon ui-icon-seek-end'>&gt;&gt;</a>";
         $espresso_paginate .= "</div>";
     }
     echo "<div id='event_content' class='event_content'>";
     if (count($events) < 1) {
         //echo $sql;
         echo __('No events available...', 'event_espresso');
     }
     if ($display_desc == 'Y') {
         echo '<p id="events_category_name-' . $category_id . '" class="events_category_name">' . stripslashes_deep($category_name) . '</p>';
         echo espresso_format_content($category_desc);
     }
     foreach ($events as $event) {
         $event_id = $event->id;
         $event_name = $event->event_name;
         $event_desc = stripslashes_deep($event->event_desc);
         $event_identifier = $event->event_identifier;
         $active = $event->is_active;
         $registration_start = $event->registration_start;
         $registration_end = $event->registration_end;
         $start_date = $event->start_date;
         $end_date = $event->end_date;
         $reg_limit = $event->reg_limit;
         $event_address = $event->address;
         $event_address2 = $event->address2;
         $event_city = $event->city;
         $event_state = $event->state;
         $event_zip = $event->zip;
         $event_country = $event->country;
         $member_only = $event->member_only;
         $externalURL = $event->externalURL;
         $recurrence_id = $event->recurrence_id;
         $display_reg_form = $event->display_reg_form;
         $allow_overflow = $event->allow_overflow;
         $overflow_event_id = $event->overflow_event_id;
         $event_desc = array_shift(explode('<!--more-->', $event_desc));
         global $event_meta;
         $event_meta = unserialize($event->event_meta);
         $event_meta['is_active'] = $event->is_active;
         $event_meta['event_status'] = $event->event_status;
         $event_meta['start_time'] = empty($event->start_time) ? '' : $event->start_time;
         $event_meta['start_date'] = $event->start_date;
         $event_meta['registration_start'] = $event->registration_start;
         $event_meta['registration_startT'] = $event->registration_startT;
         $event_meta['registration_end'] = $event->registration_end;
         $event_meta['registration_endT'] = $event->registration_endT;
         //Venue information
         if ($org_options['use_venue_manager'] == 'Y') {
             $event_address = empty($event->venue_address) ? '' : $event->venue_address;
             $event_address2 = empty($event->venue_address2) ? '' : $event->venue_address2;
             $event_city = empty($event->venue_city) ? '' : $event->venue_city;
             $event_state = empty($event->venue_state) ? '' : $event->venue_state;
             $event_zip = empty($event->venue_zip) ? '' : $event->venue_zip;
             $event_country = empty($event->venue_country) ? '' : $event->venue_country;
             //Leaving these variables intact, just in case people want to use them
             $venue_title = empty($event->venue_name) ? '' : $event->venue_name;
             $venue_address = $event_address;
             $venue_address2 = $event_address2;
             $venue_city = $event_city;
             $venue_state = $event_state;
             $venue_zip = $event_zip;
             $venue_country = $event_country;
             global $venue_meta;
             $add_venue_meta = array('venue_title' => $venue_title, 'venue_address' => $event_address, 'venue_address2' => $event_address2, 'venue_city' => $event_city, 'venue_state' => $event_state, 'venue_country' => $event_country);
             $venue_meta = !empty($event->venue_meta) && !empty($add_venue_meta) ? array_merge(unserialize($event->venue_meta), $add_venue_meta) : '';
             //print_r($venue_meta);
         }
         //Address formatting
         $location = (!empty($event_address) ? $event_address : '') . (!empty($event_address2) ? '<br />' . $event_address2 : '') . (!empty($event_city) ? '<br />' . $event_city : '') . (!empty($event_state) ? ', ' . $event_state : '') . (!empty($event_zip) ? '<br />' . $event_zip : '') . (!empty($event_country) ? '<br />' . $event_country : '');
         //Google map link creation
         $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
         global $all_meta;
         $all_meta = array('event_id' => $event_id, 'event_name' => stripslashes_deep($event_name), 'event_desc' => stripslashes_deep($event_desc), 'event_address' => $event_address, 'event_address2' => $event_address2, 'event_city' => $event_city, 'event_state' => $event_state, 'event_zip' => $event_zip, 'event_country' => $venue_country, 'venue_title' => $venue_title, 'venue_address' => $venue_address, 'venue_address2' => $venue_address2, 'venue_city' => $venue_city, 'venue_state' => $venue_state, 'venue_country' => $venue_country, 'location' => $location, 'is_active' => $event->is_active, 'event_status' => $event->event_status, 'contact_email' => empty($event->alt_email) ? $org_options['contact_email'] : $event->alt_email, 'start_time' => empty($event->start_time) ? '' : $event->start_time, 'registration_startT' => $event->registration_startT, 'registration_start' => $registration_start, 'registration_endT' => $event->registration_endT, 'registration_end' => $registration_end, 'is_active' => empty($is_active) ? '' : $is_active, 'event_country' => $event_country, 'start_date' => event_date_display($start_date, get_option('date_format')), 'end_date' => event_date_display($end_date, get_option('date_format')), 'time' => empty($event->start_time) ? '' : $event->start_time, 'start_time' => empty($event->start_time) ? '' : $event->start_time, 'end_time' => empty($event->end_time) ? '' : $event->end_time, 'google_map_link' => $google_map_link, 'price' => empty($event->event_cost) ? '' : $event->event_cost, 'event_cost' => empty($event->event_cost) ? '' : $event->event_cost);
         //Debug
         //echo '<p>'.print_r($all_meta).'</p>';
         //These variables can be used with other the espresso_countdown, espresso_countup, and espresso_duration functions and/or any javascript based functions.
         //Warning: May cause additional database queries an should only be used for sites with a small amount of events.
         // $start_timestamp = espresso_event_time($event_id, 'start_timestamp');
         //$end_timestamp = espresso_event_time($event_id, 'end_timestamp');
         //This can be used in place of the registration link if you are usign the external URL feature
         $registration_url = $externalURL != '' ? $externalURL : espresso_reg_url($event_id);
         //Serve up the event list
         //As of version 3.0.17 the event list details have been moved to event_list_display.php
         if ($allow_override == 1) {
             //Uncomment to show active status array
             //print_r( event_espresso_get_is_active($event_id));
             include 'event_list_display.php';
         } else {
             switch (event_espresso_get_status($event_id)) {
                 case 'NOT_ACTIVE':
                     //Don't show the event
                     //Uncomment the following two lines to show events that are not active and the active status array
                     //print_r( event_espresso_get_is_active($event_id));
                     //include('event_list_display.php');
                     break;
                 case 'PENDING':
                     if (current_user_can('administrator') || function_exists('espresso_member_data') && espresso_can_view_event($event_id) == true) {
                         //Uncomment to show active status array
                         //print_r( event_espresso_get_is_active($event_id));
                         echo '<div class="pending_event">';
                         include 'event_list_display.php';
                         echo '</div>';
                     }
                     break;
                 default:
                     //Uncomment to show active status array
                     //print_r( event_espresso_get_is_active($event_id));
                     include 'event_list_display.php';
                     break;
             }
         }
     }
     echo "</div>";
     echo "</div>";
     if (isset($espresso_paginate)) {
         echo $espresso_paginate;
         // spit out the pagination links
     }
     if ($use_wrapper) {
         echo "</div>";
     }
     //Check to see how many database queries were performed
     //echo '<p>Database Queries: ' . get_num_queries() .'</p>';
     espresso_registration_footer();
 }
    function multi_register_attendees($single_event_id = NULL, $event_id_sc = 0, $meta = array(), $event = FALSE)
    {
        global $wpdb, $org_options;
        $events_in_session = $_SESSION['espresso_session']['events_in_session'];
        $event_count = count($events_in_session);
        static $event_counter = 1;
        static $attendee_number = 1;
        //The following variables are used to get information about your organization
        $event_page_id = $org_options['event_page_id'];
        $Organization = isset($org_options['organization']) && !empty($org_options['organization']) ? stripslashes_deep($org_options['organization']) : '';
        $Organization_street1 = isset($org_options['organization_street1']) && !empty($org_options['organization_street1']) ? $org_options['organization_street1'] : '';
        $Organization_street2 = isset($org_options['organization_street2']) && !empty($org_options['organization_street2']) ? $org_options['organization_street2'] : '';
        $Organization_city = isset($org_options['organization_city']) && !empty($org_options['organization_city']) ? $org_options['organization_city'] : '';
        $Organization_state = isset($org_options['organization_state']) && !empty($org_options['organization_state']) ? $org_options['organization_state'] : '';
        $Organization_zip = isset($org_options['organization_zip']) && !empty($org_options['organization_zip']) ? $org_options['organization_zip'] : '';
        $contact = isset($org_options['contact_email']) && !empty($org_options['contact_email']) ? $org_options['contact_email'] : '';
        $registrar = isset($org_options['contact_email']) && !empty($org_options['contact_email']) ? $org_options['contact_email'] : '';
        $currency_format = isset($org_options['currency_format']) && !empty($org_options['currency_format']) ? $org_options['currency_format'] : '';
        $message = isset($org_options['message']) && !empty($org_options['message']) ? $org_options['message'] : '';
        $paypal_id = isset($org_options['paypal_id']) && !empty($org_options['paypal_id']) ? $org_options['paypal_id'] : '';
        if (!$event) {
            // the key we will eventually use in our query to find the event
            $ID = $event_id_sc != '0' ? $event_id_sc : $_REQUEST['event_id'];
            if (!empty($_REQUEST['event_id_time'])) {
                $pieces = explode('|', $_REQUEST['event_id_time'], 3);
                $ID = $pieces[0];
                $start_time = $pieces[1];
                $time_id = $pieces[2];
                $time_selected = true;
            }
            //If a single event needs to be displayed, get its ID
            if ($single_event_id != NULL) {
                $sql = "SELECT id FROM " . EVENTS_DETAIL_TABLE;
                $sql .= " WHERE event_identifier = %s";
                $sql .= " LIMIT 0,1";
                $result = $wpdb->get_row($wpdb->prepare($sql, $single_event_id));
                $ID = $result->id;
            }
            //Build event queries
            $sql = "SELECT * FROM " . EVENTS_DETAIL_TABLE;
            $sql .= " WHERE is_active='Y' ";
            $sql .= " AND event_status != 'D' ";
            $sql .= " AND id =%d LIMIT 0,1";
            //Support for diarise
            if (!empty($_REQUEST['post_event_id'])) {
                $sql = "SELECT * FROM " . EVENTS_DETAIL_TABLE;
                $sql .= " WHERE post_id = %d ";
                $sql .= " LIMIT 0,1";
                $ID = absint($_REQUEST['post_event_id']);
            }
            $event = $wpdb->get_row($wpdb->prepare($sql, $ID));
        }
        //Build the registration page
        if ($event) {
            //These are the variables that can be used throughout the regsitration page
            $event_id = $event->id;
            $event_name = stripslashes_deep($event->event_name);
            $event_desc = stripslashes_deep($event->event_desc);
            $display_desc = $event->display_desc;
            $display_reg_form = $event->display_reg_form;
            $event_address = $event->address;
            $event_address2 = $event->address2;
            $event_city = $event->city;
            $event_state = $event->state;
            $event_zip = $event->zip;
            $event_country = $event->country;
            $event_description = stripslashes_deep($event->event_desc);
            $event_identifier = $event->event_identifier;
            $event_cost = !empty($event->event_cost) ? $event->event_cost : 0;
            //echo '<h4>$event_cost : ' . $event_cost . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
            $member_only = $event->member_only;
            $reg_limit = $event->reg_limit;
            $allow_multiple = $event->allow_multiple;
            $start_date = $event->start_date;
            $end_date = $event->end_date;
            $allow_overflow = $event->allow_overflow;
            $overflow_event_id = $event->overflow_event_id;
            $virtual_url = stripslashes_deep($event->virtual_url);
            $virtual_phone = stripslashes_deep($event->virtual_phone);
            //Address formatting
            $location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $event_country : '');
            //Google map link creation
            $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
            $reg_start_date = $event->registration_start;
            $reg_end_date = $event->registration_end;
            $today = date("Y-m-d");
            $reg_limit = $event->reg_limit;
            $additional_limit = $event->additional_limit;
            $question_groups = unserialize($event->question_groups);
            $item_groups = unserialize($event->item_groups);
            $event_meta = maybe_unserialize($event->event_meta);
            //printr( $event_meta, '$event_meta  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
            //This function gets the status of the event.
            //$is_active = event_espresso_get_status($event_id, $event_meta);
            $is_active = event_espresso_get_is_active($event_id, $event_meta);
            //If the coupon code system is intalled then use it
            $use_coupon_code = function_exists('event_espresso_coupon_registration_page') ? $event->use_coupon_code : FALSE;
            //If the groupon code addon is installed, then use it
            $use_groupon_code = function_exists('event_espresso_groupon_payment_page') ? $event->use_groupon_code : FALSE;
            //Set a default value for additional limit
            if ($additional_limit == '') {
                $additional_limit = '5';
            }
            $add_attendee_question_groups = $event_meta['add_attendee_question_groups'];
            if ($org_options['use_captcha'] == 'Y' && isset($_REQUEST['edit_details']) && $_REQUEST['edit_details'] != 'true') {
                ?>
				<script type="text/javascript">
					var RecaptchaOptions = {
						theme : '<?php 
                echo $org_options['recaptcha_theme'] == '' ? 'red' : $org_options['recaptcha_theme'];
                ?>
',
						lang : '<?php 
                echo $org_options['recaptcha_language'] == '' ? 'en' : $org_options['recaptcha_language'];
                ?>
'
					};
				</script>
				<?php 
            }
            //*************  This is the start of the registration form. This is where you can start editing your display. *************
            //Get the number of attendees
            $num_attendees = get_number_of_attendees_reg_limit($event_id, 'num_attendees');
            //Gets a count of the available spaces
            $available_spaces = get_number_of_attendees_reg_limit($event_id, 'available_spaces');
            //Gets the number of available spaces
            $number_available_spaces = get_number_of_attendees_reg_limit($event_id, 'number_available_spaces');
            //Please visit http://eventespresso.com/forums/?p=247 for available parameters for the get_number_of_attendees_reg_limit() function.
            if ($available_spaces == "Unlimited" || $available_spaces >= $number_available_spaces) {
                //(Shows the regsitration form if enough spaces exist)
                // SOLD OUT !!!
                if ($num_attendees >= $reg_limit) {
                    ?>
					<div class="espresso_event_full event-display-boxes" id="espresso_event_full-<?php 
                    echo $event_id;
                    ?>
">
						<h3 class="event_title"><?php 
                    echo stripslashes_deep($event_name);
                    ?>
</h3>
						<p class="event_full"><strong><?php 
                    _e('We are sorry but this event has reached the maximum number of attendees!', 'event_espresso');
                    ?>
</strong></p>
						<p class="event_full"><strong><?php 
                    _e('Please check back in the event someone cancels.', 'event_espresso');
                    ?>
</strong></p>
						<p class="num_attendees"><?php 
                    _e('Current Number of Attendees:', 'event_espresso');
                    ?>
 <?php 
                    echo $num_attendees;
                    ?>
</p>

						<?php 
                    // is there an overflow event ????
                    if ($num_attendees >= $reg_limit && ($allow_overflow == 'Y' && $overflow_event_id != 0)) {
                        ?>
							<p id="register_link-<?php 
                        echo $overflow_event_id;
                        ?>
" class="register-link-footer">
								<a id="a_register_link-<?php 
                        echo $overflow_event_id;
                        ?>
" 
									class="a_register_link" 
									href="<?php 
                        echo espresso_reg_url($overflow_event_id);
                        ?>
" 
									title="<?php 
                        echo stripslashes_deep($event_name);
                        ?>
"
								>
									<?php 
                        _e('Join Waiting List', 'event_espresso');
                        ?>
								</a>
							</p>
						<?php 
                    }
                    ?>
					</div>
					<?php 
                    // event_espresso_clear_session();
                } else {
                    //If enough spaces exists then serve up the registration form
                    //As of version 3.0.17 the registration details have been moved to registration_form.php
                    include 'multi_registration_page_display.php';
                    $event_counter++;
                    echo '<input type="hidden" name="regevent_action" value="post_multi_attendee" />';
                }
                //End if ($num_attendees >= $reg_limit) (Shows the regsitration form if enough spaces exist)
            }
            //End ($available_spaces == "Unlimited" || $available_spaces >= $number_available_spaces)
        } else {
            //If there are no results from the query, display this message
            _e('<h3>This event has expired or is no longer available.</h3>', 'event_espresso');
        }
        //Check to see how many database queries were performed
        //echo '<p>Database Queries: ' . get_num_queries() .'</p>';
    }
 function event_espresso_get_event_details($sql, $css_class = NULL, $allow_override = 0)
 {
     global $wpdb, $org_options;
     //echo 'This page is located in ' . get_option( 'upload_path' );
     $event_page_id = $org_options['event_page_id'];
     $currency_symbol = isset($org_options['currency_symbol']) ? $org_options['currency_symbol'] : '';
     $events = $wpdb->get_results($sql);
     $category_id = isset($wpdb->last_result[0]->id) ? $wpdb->last_result[0]->id : '';
     $category_name = isset($wpdb->last_result[0]->category_name) ? $wpdb->last_result[0]->category_name : '';
     $category_identifier = isset($wpdb->last_result[0]->category_identifier) ? $wpdb->last_result[0]->category_identifier : '';
     $category_desc = isset($wpdb->last_result[0]->category_desc) ? html_entity_decode(wpautop($wpdb->last_result[0]->category_desc)) : '';
     $display_desc = isset($wpdb->last_result[0]->display_desc) ? $wpdb->last_result[0]->display_desc : '';
     /* group recuring events */
     $events_type_index = -1;
     $events_of_same_type = array();
     $last_recurrence_id = null;
     /* end group recuring events */
     if ($display_desc == 'Y') {
         echo '<p id="events_category_name-' . $category_id . '" class="events_category_name">' . stripslashes_deep($category_name) . '</p>';
         echo wpautop($category_desc);
     }
     foreach ($events as $event) {
         $event_id = $event->id;
         $event_name = $event->event_name;
         $event_desc = $event->event_desc;
         $event_identifier = $event->event_identifier;
         $active = $event->is_active;
         $registration_start = $event->registration_start;
         $registration_end = $event->registration_end;
         $start_date = $event->start_date;
         $end_date = $event->end_date;
         $reg_limit = $event->reg_limit;
         $event_address = $event->address;
         $event_address2 = $event->address2;
         $event_city = $event->city;
         $event_state = $event->state;
         $event_zip = $event->zip;
         $event_country = $event->country;
         $member_only = $event->member_only;
         $externalURL = $event->externalURL;
         $recurrence_id = $event->recurrence_id;
         $allow_overflow = $event->allow_overflow;
         $overflow_event_id = $event->overflow_event_id;
         //Address formatting
         $location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $event_country : '');
         //Google map link creation
         $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
         //These variables can be used with other the espresso_countdown, espresso_countup, and espresso_duration functions and/or any javascript based functions.
         $start_timestamp = espresso_event_time($event_id, 'start_timestamp');
         $end_timestamp = espresso_event_time($event_id, 'end_timestamp');
         //This can be used in place of the registration link if you are usign the external URL feature
         $registration_url = $externalURL != '' ? $externalURL : get_option('siteurl') . '/?page_id=' . $event_page_id . '&regevent_action=register&event_id=' . $event_id . '&name_of_event=' . stripslashes_deep($event_name);
         if (!is_user_logged_in() && get_option('events_members_active') == 'true' && $member_only == 'Y') {
             //Display a message if the user is not logged in.
             //_e('Member Only Event. Please ','event_espresso') . event_espresso_user_login_link() . '.';
         } else {
             //Serve up the event list
             //As of version 3.0.17 the event lsit details have been moved to event_list_display.php
             switch (event_espresso_get_status($event_id)) {
                 case 'NOT_ACTIVE':
                     //Don't show the event if any of the above are true
                     break;
                 default:
                     /* skip secondary (waitlist) events */
                     $event_status = event_espresso_get_is_active($event_id);
                     if ($event_status['status'] == 'SECONDARY') {
                         break;
                     }
                     /* group recuring events */
                     $is_new_event_type = $last_recurrence_id == 0 || $last_recurrence_id != $recurrence_id;
                     if ($is_new_event_type) {
                         $events_type_index++;
                         $events_of_same_type[$events_type_index] = array();
                     }
                     $event_data = array('event_id' => $event_id, 'event_page_id' => $event_page_id, 'event_name' => $event_name, 'event_desc' => $event_desc, 'start_date' => $start_date, 'end_date' => $end_date, 'reg_limit' => $reg_limit, 'registration_url' => $registration_url, 'overflow_event_id' => $overflow_event_id);
                     array_push($events_of_same_type[$events_type_index], $event_data);
                     $last_recurrence_id = $recurrence_id;
                     // include('event_list_display.php');
                     break;
             }
         }
     }
     /* group recuring events */
     foreach ($events_of_same_type as $events_group) {
         include 'event_list_display.php';
     }
     /* end group recuring events */
     //Check to see how many database queries were performed
     //echo '<p>Database Queries: ' . get_num_queries() .'</p>';
 }
 function event_espresso_get_event_details($sql, $css_class = NULL, $allow_override = 0)
 {
     //echo $sql;
     global $wpdb, $org_options, $events_in_session;
     $multi_reg = false;
     if (function_exists('event_espresso_multi_reg_init')) {
         $multi_reg = true;
     }
     //echo 'This page is located in ' . get_option( 'upload_path' );
     $event_page_id = $org_options['event_page_id'];
     $currency_symbol = isset($org_options['currency_symbol']) ? $org_options['currency_symbol'] : '';
     $events = $wpdb->get_results($sql);
     $category_id = isset($wpdb->last_result[0]->id) ? $wpdb->last_result[0]->id : '';
     $category_name = isset($wpdb->last_result[0]->category_name) ? $wpdb->last_result[0]->category_name : '';
     $category_identifier = isset($wpdb->last_result[0]->category_identifier) ? $wpdb->last_result[0]->category_identifier : '';
     $category_desc = isset($wpdb->last_result[0]->category_desc) ? html_entity_decode(wpautop($wpdb->last_result[0]->category_desc)) : '';
     $display_desc = isset($wpdb->last_result[0]->display_desc) ? $wpdb->last_result[0]->display_desc : '';
     if ($display_desc == 'Y') {
         echo '<p id="events_category_name-' . $category_id . '" class="events_category_name">' . stripslashes_deep($category_name) . '</p>';
         echo espresso_format_content($category_desc);
     }
     //Debug
     //var_dump($events);
     foreach ($events as $event) {
         $event_id = $event->id;
         $event_name = $event->event_name;
         $event_desc = stripslashes_deep($event->event_desc);
         $event_identifier = $event->event_identifier;
         $active = $event->is_active;
         $registration_start = $event->registration_start;
         $registration_end = $event->registration_end;
         $start_date = $event->start_date;
         $end_date = $event->end_date;
         $reg_limit = $event->reg_limit;
         $event_address = $event->address;
         $event_address2 = $event->address2;
         $event_city = $event->city;
         $event_state = $event->state;
         $event_zip = $event->zip;
         $event_country = $event->country;
         $member_only = $event->member_only;
         $externalURL = $event->externalURL;
         $recurrence_id = $event->recurrence_id;
         $display_reg_form = $event->display_reg_form;
         $allow_overflow = $event->allow_overflow;
         $overflow_event_id = $event->overflow_event_id;
         $event_desc = array_shift(explode('<!--more-->', $event_desc));
         global $event_meta;
         $event_meta = unserialize($event->event_meta);
         $event_meta['is_active'] = $event->is_active;
         $event_meta['event_status'] = $event->event_status;
         $event_meta['start_time'] = empty($event->start_time) ? '' : $event->start_time;
         $event_meta['start_date'] = $event->start_date;
         $event_meta['registration_start'] = $event->registration_start;
         $event_meta['registration_startT'] = $event->registration_startT;
         $event_meta['registration_end'] = $event->registration_end;
         $event_meta['registration_endT'] = $event->registration_endT;
         //Venue information
         if ($org_options['use_venue_manager'] == 'Y') {
             $event_address = empty($event->venue_address) ? '' : $event->venue_address;
             $event_address2 = empty($event->venue_address2) ? '' : $event->venue_address2;
             $event_city = empty($event->venue_city) ? '' : $event->venue_city;
             $event_state = empty($event->venue_state) ? '' : $event->venue_state;
             $event_zip = empty($event->venue_zip) ? '' : $event->venue_zip;
             $event_country = empty($event->venue_country) ? '' : $event->venue_country;
             //Leaving these variables intact, just in case people want to use them
             $venue_title = empty($event->venue_name) ? '' : $event->venue_name;
             $venue_address = $event_address;
             $venue_address2 = $event_address2;
             $venue_city = $event_city;
             $venue_state = $event_state;
             $venue_zip = $event_zip;
             $venue_country = $event_country;
             global $venue_meta;
             $add_venue_meta = array('venue_title' => $venue_title, 'venue_address' => $event_address, 'venue_address2' => $event_address2, 'venue_city' => $event_city, 'venue_state' => $event_state, 'venue_country' => $event_country);
             $venue_meta = !empty($event->venue_meta) && !empty($add_venue_meta) ? array_merge(unserialize($event->venue_meta), $add_venue_meta) : '';
             //print_r($venue_meta);
         }
         //Address formatting
         $location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $event_country : '');
         //Google map link creation
         $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
         global $all_meta;
         $all_meta = array('event_name' => stripslashes_deep($event_name), 'event_desc' => stripslashes_deep($event_desc), 'event_address' => $event_address, 'event_address2' => $event_address2, 'event_city' => $event_city, 'event_state' => $event_state, 'event_zip' => $event_zip, 'is_active' => $event->is_active, 'event_status' => $event->event_status, 'start_time' => empty($event->start_time) ? '' : $event->start_time, 'registration_startT' => $event->registration_startT, 'registration_start' => $registration_start, 'registration_endT' => $event->registration_endT, 'registration_end' => $registration_end, 'is_active' => empty($is_active) ? '' : $is_active, 'event_country' => $event_country, 'start_date' => event_date_display($start_date, get_option('date_format')), 'end_date' => event_date_display($end_date, get_option('date_format')), 'time' => empty($event->start_time) ? '' : $event->start_time, 'google_map_link' => $google_map_link, 'price' => empty($event->event_cost) ? '' : $event->event_cost, 'event_cost' => empty($event->event_cost) ? '' : $event->event_cost);
         //Debug
         //echo '<p>'.print_r($all_meta).'</p>';
         //These variables can be used with other the espresso_countdown, espresso_countup, and espresso_duration functions and/or any javascript based functions.
         //Warning: May cause additional database queries an should only be used for sites with a small amount of events.
         // $start_timestamp = espresso_event_time($event_id, 'start_timestamp');
         //$end_timestamp = espresso_event_time($event_id, 'end_timestamp');
         //This can be used in place of the registration link if you are usign the external URL feature
         $registration_url = $externalURL != '' ? $externalURL : espresso_reg_url($event_id);
         if (!is_user_logged_in() && get_option('events_members_active') == 'true' && $member_only == 'Y') {
             //Display a message if the user is not logged in.
             //_e('Member Only Event. Please ','event_espresso') . event_espresso_user_login_link() . '.';
         } else {
             //Serve up the event list
             //As of version 3.0.17 the event list details have been moved to event_list_display.php
             if ($allow_override == 1) {
                 //Uncomment to show active status array
                 //print_r( event_espresso_get_is_active($event_id));
                 include 'event_list_display.php';
             } else {
                 switch (event_espresso_get_status($event_id)) {
                     case 'NOT_ACTIVE':
                         //Don't show the event
                         //Uncomment the following two lines to show events that are not active and the active status array
                         //print_r( event_espresso_get_is_active($event_id));
                         //include('event_list_display.php');
                         break;
                     case 'PENDING':
                         if (current_user_can('administrator') || function_exists('espresso_member_data') && espresso_can_view_event($event_id) == true) {
                             //Uncomment to show active status array
                             //print_r( event_espresso_get_is_active($event_id));
                             echo '<div class="pending_event">';
                             include 'event_list_display.php';
                             echo '</div>';
                         }
                         break;
                     default:
                         //Uncomment to show active status array
                         //print_r( event_espresso_get_is_active($event_id));
                         include 'event_list_display.php';
                         break;
                 }
             }
         }
     }
     //Check to see how many database queries were performed
     //echo '<p>Database Queries: ' . get_num_queries() .'</p>';
     espresso_registration_footer();
 }
     $venue_address2 = $data->event->venue_address2;
     $venue_city = $data->event->venue_city;
     $venue_state = $data->event->venue_state;
     $venue_zip = $data->event->venue_zip;
     $venue_country = $data->event->venue_country;
     global $venue_meta;
     $add_venue_meta = array('venue_title' => $data->event->venue_name, 'venue_address' => $data->event->venue_address, 'venue_address2' => $data->event->venue_address2, 'venue_city' => $data->event->venue_city, 'venue_state' => $data->event->venue_state, 'venue_country' => $data->event->venue_country);
     $venue_meta = isset($data->event->venue_meta) && $data->event->venue_meta != '' && (isset($add_venue_meta) && $add_venue_meta != '') ? array_merge(unserialize($data->event->venue_meta), $add_venue_meta) : '';
     //print_r($venue_meta);
 }
 $virtual_url = stripslashes_deep($data->event->virtual_url);
 $virtual_phone = stripslashes_deep($data->event->virtual_phone);
 //Address formatting
 $location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $event_country : '');
 //Google map link creation
 $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
 $question_groups = unserialize($data->event->question_groups);
 $reg_start_date = $data->event->registration_start;
 $reg_end_date = $data->event->registration_end;
 $today = date("Y-m-d");
 if (isset($data->event->timezone_string) && $data->event->timezone_string != '') {
     $timezone_string = $data->event->timezone_string;
 } else {
     $timezone_string = get_option('timezone_string');
     if (!isset($timezone_string) || $timezone_string == '') {
         $timezone_string = 'America/New_York';
     }
 }
 $t = time();
 $today = date_at_timezone("Y-m-d H:i A", $timezone_string, $t);
 //echo event_date_display($today, get_option('date_format'). ' ' .get_option('time_format')) . ' ' . $timezone_string;
function espresso_confirm_registration()
{
    do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
    global $wpdb, $org_options;
    if (!empty($_POST['confirm_registration'])) {
        $registration_id = sanitize_text_field($_POST['registration_id']);
    } else {
        wp_die(__('An error has occured. The registration ID could not be found.', 'event_espresso'));
    }
    echo '<div id="espresso-payment_page-dv" >';
    do_action('action_hook_espresso_confirmation_page_before', $registration_id);
    //Get the questions for the attendee
    $SQL = "SELECT ea.answer, eq.question FROM " . EVENTS_ANSWER_TABLE . " ea ";
    $SQL .= "LEFT JOIN " . EVENTS_QUESTION_TABLE . " eq ON eq.id = ea.question_id ";
    $SQL .= "WHERE ea.registration_id = %s ";
    $SQL .= "AND system_name IS NULL ORDER BY eq.sequence asc ";
    $questions = $wpdb->get_results($wpdb->prepare($SQL, $registration_id));
    //echo $wpdb->last_query;
    $display_questions = '';
    foreach ($questions as $question) {
        $question->question = trim(stripslashes(str_replace('&#039;', "'", $question->question)));
        $question->question = htmlspecialchars($question->question, ENT_QUOTES, 'UTF-8');
        $question->answer = trim(stripslashes(str_replace('&#039;', "'", $question->answer)));
        $question->answer = htmlspecialchars($question->answer, ENT_QUOTES, 'UTF-8');
        $display_questions .= '<p class="espresso_questions"><strong>' . $question->question . '</strong>:<br /> ' . str_replace(',', '<br />', $question->answer) . '</p>';
    }
    //Get the event information
    $SQL = "SELECT ed.*  FROM " . EVENTS_DETAIL_TABLE . " ed ";
    $SQL .= "JOIN " . EVENTS_ATTENDEE_TABLE . " ea ON ed.id = ea.event_id ";
    $SQL .= "WHERE ea.registration_id=%s";
    $events = $wpdb->get_results($wpdb->prepare($SQL, $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 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $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 = '<a href="' . $event_url . '">' . $event_name . '</a>';
    $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 .= " AND is_primary = 1 ";
    $SQL .= " ORDER BY id ";
    $SQL .= " LIMIT 0,1 ";
    //Get the first attendees details
    if (!($attendee = $wpdb->get_row($wpdb->prepare($SQL, NULL)))) {
        wp_die(__('An error occured. The primary attendee could not be found.', 'event_espresso'));
    }
    $attendee_id = $attendee->id;
    $attendee_email = isset($attendee->email) ? $attendee->email : '';
    $lname = isset($attendee->lname) ? htmlspecialchars(stripslashes($attendee->lname), ENT_QUOTES, 'UTF-8') : '';
    $fname = isset($attendee->fname) ? htmlspecialchars(stripslashes($attendee->fname), ENT_QUOTES, 'UTF-8') : '';
    $address = isset($attendee->address) ? htmlspecialchars(stripslashes($attendee->address), ENT_QUOTES, 'UTF-8') : '';
    $address2 = isset($attendee->address2) ? htmlspecialchars(stripslashes($attendee->address2), ENT_QUOTES, 'UTF-8') : '';
    $city = isset($attendee->city) ? htmlspecialchars(stripslashes($attendee->city), ENT_QUOTES, 'UTF-8') : '';
    $state = isset($attendee->state) ? htmlspecialchars(stripslashes($attendee->state), ENT_QUOTES, 'UTF-8') : '';
    $country = isset($attendee->country) ? htmlspecialchars(stripslashes($attendee->country), ENT_QUOTES, 'UTF-8') : '';
    $zip = isset($attendee->zip) ? $attendee->zip : '';
    $payment_status = $attendee->payment_status;
    $txn_type = $attendee->txn_type;
    $amount_pd = (double) $attendee->amount_pd;
    $total_cost = (double) $attendee->total_cost;
    $payment_date = $attendee->payment_date;
    $phone = $attendee->phone;
    $event_time = $attendee->event_time;
    $end_time = $attendee->end_time;
    $date = $attendee->date;
    $pre_approve = $attendee->pre_approve;
    $session_id = $attendee->attendee_session;
    if ($attendee->is_primary) {
        $event_cost = $total_cost;
    }
    $attendee_pre_approved = is_attendee_approved($event_id, $attendee_id);
    if ($attendee_pre_approved) {
        //Pull in the "Payment Overview" page template
        if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "payment_page.php")) {
            require_once EVENT_ESPRESSO_TEMPLATE_DIR . "payment_page.php";
            //This is the path to the template file if available
        } else {
            require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/payment_page.php";
        }
        //Show payment options
        if ($total_cost > 0) {
            if (file_exists(EVENT_ESPRESSO_GATEWAY_DIR . "gateway_display.php")) {
                require_once EVENT_ESPRESSO_GATEWAY_DIR . "gateway_display.php";
            } else {
                require_once EVENT_ESPRESSO_PLUGINFULLPATH . "gateways/gateway_display.php";
            }
            //Check to see if the site owner wants to send an confirmation eamil before payment is recieved.
            if ($org_options['email_before_payment'] == 'Y') {
                event_espresso_email_confirmations(array('session_id' => $session_id, 'send_admin_email' => 'true', 'send_attendee_email' => 'true'));
            }
        } else {
            event_espresso_email_confirmations(array('session_id' => $session_id, 'send_admin_email' => 'true', 'send_attendee_email' => 'true'));
        }
    } else {
        if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/process-registration/pending_approval_page.php')) {
            require_once 'pending_approval_page.php';
            echo espresso_pending_registration_approval($registration_id);
            return;
        }
    }
    echo '</div>';
}
 function espresso_venue_details_sc($atts)
 {
     global $wpdb, $this_event_id;
     empty($atts) ? '' : extract($atts);
     //Outside wrapper
     $outside_wrapper_class = isset($outside_wrapper_class) ? 'class="' . $outside_wrapper_class . '"' : 'class="event_venue"';
     $wrapper_start = isset($outside_wrapper) ? '<' . $outside_wrapper . ' ' . $outside_wrapper_class : '<div ' . $outside_wrapper_class;
     $wrapper_end = isset($outside_wrapper) ? '</' . $outside_wrapper . '>' : '</div>';
     //Image class
     $image_class = isset($image_class) ? 'class="' . $image_class . '"' : 'class="venue_image"';
     $image_wrapper_class = isset($image_wrapper_class) ? 'class="' . $image_wrapper_class . '"' : 'class="image_wrapper"';
     $image_wrapper_start = isset($image_wrapper) ? '<' . $image_wrapper . ' ' . $image_wrapper_class : '<p ' . $image_wrapper_class . '>';
     $image_wrapper_end = isset($image_wrapper) ? '</' . $image_wrapper . '>' : '</p>';
     //Venue title
     $title_class = isset($title_class) ? 'class="' . $title_class . '"' : 'class="venue_name"';
     $title_wrapper_start = isset($title_wrapper) ? '<' . $title_wrapper . ' ' . $title_class : '<h3 ' . $title_class;
     $title_wrapper_end = isset($title_wrapper) ? '</' . $title_wrapper . '>' : '</h3>';
     //Inside wrappers
     $inside_wrapper_class = isset($inside_wrapper_class) ? 'class="' . $inside_wrapper_class . '"' : 'class="venue_details"';
     $inside_wrapper_before = isset($inside_wrapper) ? '<' . $inside_wrapper . ' ' . $inside_wrapper_class . '>' : '<p ' . $inside_wrapper_class . '>';
     $inside_wrapper_after = isset($inside_wrapper) ? '</' . $inside_wrapper . '>' : '</p>';
     //Map image class
     $map_image_class = isset($map_image_class) ? 'class="' . $map_image_class . '"' : 'class="venue_map_image"';
     $map_image_wrapper_class = isset($map_image_wrapper_class) ? 'class="' . $map_image_wrapper_class . '">' : 'class="map_image_wrapper">';
     $map_image_wrapper_start = isset($map_image_wrapper) ? '<' . $map_image_wrapper . ' ' . $map_image_wrapper_class : '<p ' . $map_image_wrapper_class;
     $map_image_wrapper_end = isset($map_image_wrapper) ? '</' . $map_image_wrapper . '>' : '</p>';
     //Google Map link text
     $show_google_map_link = isset($show_google_map_link) && $show_google_map_link == 'false' ? false : true;
     $map_link_text = isset($map_link_text) ? $map_link_text : __('Map and Directions', 'event_espresso');
     //Show Google map image?
     $show_map_image = isset($show_map_image) && $show_map_image == 'false' ? false : true;
     //Show title?
     $show_title = isset($show_title) && $show_title == 'false' ? false : true;
     //Show image?
     $show_image = isset($show_image) && $show_image == 'false' ? false : true;
     //Show the description?
     $show_description = isset($show_description) && $show_description == 'false' ? false : true;
     //Show address details?
     $show_address = isset($show_address) && $show_address == 'false' ? false : true;
     //Show additional details
     $show_additional_details = isset($show_additional_details) && $show_additional_details == 'false' ? false : true;
     $FROM = " FROM ";
     $order_by = isset($order_by) && $order_by != '' ? " ORDER BY " . $order_by . " ASC " : " ORDER BY name ASC ";
     $limit = isset($limit) && $limit > 0 ? " LIMIT 0," . $limit . " " : '';
     $using_id = false;
     //Find the event id
     if (isset($id) && $id > 0) {
     } elseif (isset($event_id)) {
         $event_id = $event_id;
         //Check to see if the event is used in the shortcode parameter
         $using_id = true;
     } elseif (isset($this_event_id)) {
         $event_id = $this_event_id;
         //Check to see if the global event id is being used
         $using_id = true;
     } elseif (isset($_REQUEST['event_id'])) {
         $event_id = $_REQUEST['event_id'];
         //If the first two are not being used, then get the event id from the url
         $using_id = true;
     }
     $sql = "SELECT ev.* ";
     if ($using_id == true) {
         $sql .= " {$FROM} " . EVENTS_DETAIL_TABLE . " e ";
         $sql .= " LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " vr ON e.id = vr.event_id ";
         $FROM = " LEFT JOIN ";
     }
     $sql .= " {$FROM} " . EVENTS_VENUE_TABLE . " ev ";
     if ($using_id == true) {
         $sql .= " ON vr.venue_id = ev.id ";
     }
     if (isset($id) && $id > 0) {
         $sql .= " WHERE ev.id = '" . $id . "' ";
     } elseif (isset($event_id) && $event_id > 0) {
         $sql .= " WHERE e.id ='" . $event_id . "' ";
     } else {
         $sql .= " GROUP BY ev.name ";
     }
     if ($using_id == false) {
         $sql .= $order_by;
         $sql .= $limit;
     }
     //echo $sql ;
     $venues = $wpdb->get_results($sql);
     $num_rows = $wpdb->num_rows;
     if ($num_rows > 0) {
         $html = '';
         foreach ($venues as $venue) {
             $venue_id = $venue->id;
             $meta = unserialize($venue->meta);
             //Google map link creation
             $google_map_link = espresso_google_map_link(array('address' => $venue->address, 'city' => $venue->city, 'state' => $venue->state, 'zip' => $venue->zip, 'country' => $venue->country, 'text' => $map_link_text, 'type' => 'text'));
             //Google map image creation
             if ($show_map_image != false) {
                 $map_w = isset($map_w) ? $map_w : 400;
                 $map_h = isset($map_h) ? $map_h : 400;
                 $google_map_image = espresso_google_map_link(array('id' => $venue_id, 'map_image_class' => $map_image_class, 'address' => $venue->address, 'city' => $venue->city, 'state' => $venue->state, 'zip' => $venue->zip, 'country' => $venue->country, 'text' => $map_link_text, 'type' => 'map', 'map_h' => $map_h, 'map_w' => $map_w));
             }
             //Build the venue title
             if ($show_title != false) {
                 $html .= $venue->name != '' ? $title_wrapper_start . '>' . stripslashes_deep($venue->name) . $title_wrapper_end : '';
             }
             //Build the venue image
             if ($show_image != false) {
                 $html .= $meta['image'] != '' ? $image_wrapper_start . '<img id="venue_image_' . $venue_id . '" ' . $image_class . ' src="' . stripslashes_deep($meta['image']) . '" />' . $image_wrapper_end : '';
             }
             //Build the description
             if ($show_description != false) {
                 $html .= $meta['description'] != '' ? espresso_format_content($meta['description']) : '';
             }
             //Build the address details
             if ($show_address != false) {
                 $html .= $inside_wrapper_before;
                 $html .= $venue->address != '' ? stripslashes_deep($venue->address) . '<br />' : '';
                 $html .= $venue->address2 != '' ? stripslashes_deep($venue->address2) . '<br />' : '';
                 $html .= $venue->city != '' ? stripslashes_deep($venue->city) . '<br />' : '';
                 $html .= $venue->state != '' ? stripslashes_deep($venue->state) . '<br />' : '';
                 $html .= $venue->zip != '' ? stripslashes_deep($venue->zip) . '<br />' : '';
                 $html .= $venue->country != '' ? stripslashes_deep($venue->country) . '<br />' : '';
                 $html .= $show_google_map_link != false ? $google_map_link : '';
                 $html .= $inside_wrapper_after;
             }
             //Build the additional details
             if ($show_additional_details != false) {
                 $html .= $inside_wrapper_before;
                 $html .= $meta['website'] != '' ? __('Website:', 'event_espresso') . ' <a href="' . stripslashes_deep($meta['website']) . '" target="_blank">' . stripslashes_deep($meta['website']) . '</a><br />' : '';
                 $html .= $meta['contact'] != '' ? __('Contact:', 'event_espresso') . ' ' . stripslashes_deep($meta['contact']) . '<br />' : '';
                 $html .= $meta['phone'] != '' ? __('Phone:', 'event_espresso') . ' ' . stripslashes_deep($meta['phone']) . '<br />' : '';
                 $html .= $meta['twitter'] != '' ? __('Twitter:', 'event_espresso') . ' <a href="http://twitter.com/#!/' . stripslashes_deep($meta['twitter']) . '" target="_blank">@' . stripslashes_deep($meta['twitter']) . '</a><br />' : '';
                 $html .= $inside_wrapper_after;
             }
             //Build the venue image
             if ($show_map_image != false) {
                 $html .= $map_image_wrapper_start . $google_map_image . $map_image_wrapper_end;
             }
         }
     }
     //ob_start();
     return $wrapper_start . ' id="venue_id_' . $venue_id . '">' . $html . $wrapper_end;
     //$buffer = ob_get_contents();
     //ob_end_clean();
     //return $buffer;
 }
Exemple #14
0
 function event_espresso_get_event_details($attributes)
 {
     //echo $sql;
     global $wpdb, $org_options, $events_in_session;
     $template_name = 'event_list_display.php';
     $path = locate_template($template_name);
     $multi_reg = false;
     if (function_exists('event_espresso_multi_reg_init')) {
         $multi_reg = true;
     }
     $default_attributes = array('category_identifier' => NULL, 'staff_id' => NULL, 'allow_override' => 0, 'show_expired' => 'false', 'show_secondary' => 'false', 'show_deleted' => 'false', 'show_recurrence' => 'true', 'limit' => '0', 'order_by' => 'NULL', 'css_class' => 'NULL');
     // loop thru default atts
     foreach ($default_attributes as $key => $default_attribute) {
         // check if att exists
         if (!isset($attributes[$key])) {
             $attributes[$key] = $default_attribute;
         }
     }
     // now extract shortcode attributes
     extract($attributes);
     $sql = "SELECT e.*, ese.start_time, ese.end_time, p.event_cost ";
     //Category sql
     $sql .= $category_identifier != NULL && !empty($category_identifier) ? ", c.category_name, c.category_desc, c.display_desc, c.category_identifier" : '';
     //Venue sql
     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 " : '';
     //Staff sql
     isset($org_options['use_personnel_manager']) && $org_options['use_personnel_manager'] == 'Y' ? $sql .= ", st.name staff_name " : '';
     $sql .= " FROM " . EVENTS_DETAIL_TABLE . " e ";
     $sql .= $category_identifier != NULL && !empty($category_identifier) ? " JOIN " . EVENTS_CATEGORY_REL_TABLE . " r ON r.event_id = e.id  JOIN " . EVENTS_CATEGORY_TABLE . " c ON  c.id = r.cat_id " : '';
     //Venue sql
     isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y' ? $sql .= " LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " vr ON vr.event_id = e.id LEFT JOIN " . EVENTS_VENUE_TABLE . " v ON v.id = vr.venue_id " : '';
     //Venue sql
     isset($org_options['use_personnel_manager']) && $org_options['use_personnel_manager'] == 'Y' ? $sql .= " LEFT JOIN " . EVENTS_PERSONNEL_REL_TABLE . " str ON str.event_id = e.id LEFT JOIN " . EVENTS_PERSONNEL_TABLE . " st ON st.id = str.person_id " : '';
     $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id= e.id ";
     $sql .= " LEFT JOIN " . EVENTS_PRICES_TABLE . " p ON p.event_id=e.id ";
     $sql .= " WHERE is_active = 'Y' ";
     //Category sql
     $sql .= $category_identifier !== NULL && !empty($category_identifier) ? " AND c.category_identifier = '" . $category_identifier . "' " : '';
     //Staff sql
     $sql .= $staff_id !== NULL && !empty($staff_id) ? " AND st.id = '" . $staff_id . "' " : '';
     $sql .= $show_expired == 'false' ? " AND (e.start_date >= '" . date('Y-m-d') . "' OR e.event_status = 'O' OR e.registration_end >= '" . date('Y-m-d') . "') " : '';
     if ($show_expired == 'true') {
         $allow_override = 1;
     }
     //If using the [ESPRESSO_VENUE_EVENTS] shortcode
     $sql .= isset($use_venue_id) && $use_venue_id == true ? " AND v.id = '" . $venue_id . "' " : '';
     $sql .= $show_secondary == 'false' ? " AND e.event_status != 'S' " : '';
     $sql .= $show_deleted == 'false' ? " AND e.event_status != 'D' " : " AND e.event_status = 'D' ";
     if ($show_deleted == 'true') {
         $allow_override = 1;
     }
     $sql .= $show_recurrence == 'false' ? " AND e.recurrence_id = '0' " : '';
     $sql .= " GROUP BY e.id ";
     $sql .= $order_by != 'NULL' ? " ORDER BY " . $order_by . " ASC " : " ORDER BY e.recurrence_id, date(start_date) ASC ";
     $sql .= $limit > 0 ? ' LIMIT 0, ' . $limit : '';
     //echo $sql;
     $event_page_id = $org_options['event_page_id'];
     $currency_symbol = isset($org_options['currency_symbol']) ? $org_options['currency_symbol'] : '';
     $events = $wpdb->get_results($sql);
     $category_id = isset($wpdb->last_result[0]->id) ? $wpdb->last_result[0]->id : '';
     $category_name = isset($wpdb->last_result[0]->category_name) ? $wpdb->last_result[0]->category_name : '';
     $category_identifier = isset($wpdb->last_result[0]->category_identifier) ? $wpdb->last_result[0]->category_identifier : '';
     $category_desc = isset($wpdb->last_result[0]->category_desc) ? html_entity_decode(wpautop($wpdb->last_result[0]->category_desc)) : '';
     $display_desc = isset($wpdb->last_result[0]->display_desc) ? $wpdb->last_result[0]->display_desc : '';
     /* group recurring events */
     $events_type_index = -1;
     $events_of_same_type = array();
     $last_recurrence_id = null;
     /* end group recurring events */
     if ($display_desc == 'Y') {
         echo '<p id="events_category_name-' . $category_id . '" class="events_category_name">' . stripslashes_deep($category_name) . '</p>';
         echo wpautop($category_desc);
     }
     foreach ($events as $event) {
         $event_id = $event->id;
         $event_name = $event->event_name;
         $event_desc = stripslashes_deep($event->event_desc);
         $event_identifier = $event->event_identifier;
         $active = $event->is_active;
         $registration_start = $event->registration_start;
         $registration_end = $event->registration_end;
         $start_date = $event->start_date;
         $end_date = $event->end_date;
         $reg_limit = $event->reg_limit;
         $event_address = $event->address;
         $event_address2 = $event->address2;
         $event_city = $event->city;
         $event_state = $event->state;
         $event_zip = $event->zip;
         $event_country = $event->country;
         $member_only = $event->member_only;
         $externalURL = $event->externalURL;
         $recurrence_id = $event->recurrence_id;
         $display_reg_form = $event->display_reg_form;
         $allow_overflow = $event->allow_overflow;
         $overflow_event_id = $event->overflow_event_id;
         $event_desc = array_shift(explode('<!--more-->', $event_desc));
         global $event_meta;
         $event_meta = unserialize($event->event_meta);
         $event_meta['is_active'] = $event->is_active;
         $event_meta['event_status'] = $event->event_status;
         $event_meta['start_time'] = empty($event->start_time) ? '' : $event->start_time;
         $event_meta['start_date'] = $event->start_date;
         $event_meta['registration_start'] = $event->registration_start;
         $event_meta['registration_startT'] = $event->registration_startT;
         $event_meta['registration_end'] = $event->registration_end;
         $event_meta['registration_endT'] = $event->registration_endT;
         //Venue information
         if ($org_options['use_venue_manager'] == 'Y') {
             $event_address = empty($event->venue_address) ? '' : $event->venue_address;
             $event_address2 = empty($event->venue_address2) ? '' : $event->venue_address2;
             $event_city = empty($event->venue_city) ? '' : $event->venue_city;
             $event_state = empty($event->venue_state) ? '' : $event->venue_state;
             $event_zip = empty($event->venue_zip) ? '' : $event->venue_zip;
             $event_country = empty($event->venue_country) ? '' : $event->venue_country;
             //Leaving these variables intact, just in case people want to use them
             $venue_title = empty($event->venue_name) ? '' : $event->venue_name;
             $venue_address = $event_address;
             $venue_address2 = $event_address2;
             $venue_city = $event_city;
             $venue_state = $event_state;
             $venue_zip = $event_zip;
             $venue_country = $event_country;
             global $venue_meta;
             $add_venue_meta = array('venue_title' => $venue_title, 'venue_address' => $event_address, 'venue_address2' => $event_address2, 'venue_city' => $event_city, 'venue_state' => $event_state, 'venue_country' => $event_country);
             $venue_meta = !empty($event->venue_meta) && !empty($add_venue_meta) ? array_merge(unserialize($event->venue_meta), $add_venue_meta) : '';
             //print_r($venue_meta);
         }
         //Address formatting
         $location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $event_country : '');
         //Google map link creation
         $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
         global $all_meta;
         $all_meta = array('event_name' => stripslashes_deep($event_name), 'event_desc' => stripslashes_deep($event_desc), 'event_address' => $event_address, 'event_address2' => $event_address2, 'event_city' => $event_city, 'event_state' => $event_state, 'event_zip' => $event_zip, 'is_active' => $event->is_active, 'event_status' => $event->event_status, 'start_time' => empty($event->start_time) ? '' : $event->start_time, 'registration_startT' => $event->registration_startT, 'registration_start' => $registration_start, 'registration_endT' => $event->registration_endT, 'registration_end' => $registration_end, 'is_active' => empty($is_active) ? '' : $is_active, 'event_country' => $event_country, 'start_date' => event_date_display($start_date, get_option('date_format')), 'end_date' => event_date_display($end_date, get_option('date_format')), 'time' => empty($event->start_time) ? '' : $event->start_time, 'google_map_link' => $google_map_link, 'price' => empty($event->event_cost) ? '' : $event->event_cost, 'event_cost' => empty($event->event_cost) ? '' : $event->event_cost);
         //Debug
         //echo '<p>'.print_r($all_meta).'</p>';
         //These variables can be used with other the espresso_countdown, espresso_countup, and espresso_duration functions and/or any javascript based functions.
         //Warning: May cause additional database queries an should only be used for sites with a small amount of events.
         // $start_timestamp = espresso_event_time($event_id, 'start_timestamp');
         //$end_timestamp = espresso_event_time($event_id, 'end_timestamp');
         //This can be used in place of the registration link if you are using the external URL feature
         $registration_url = $externalURL != '' ? $externalURL : espresso_reg_url($event_id);
         if (!is_user_logged_in() && get_option('events_members_active') == 'true' && $member_only == 'Y') {
             //Display a message if the user is not logged in.
             //_e('Member Only Event. Please ','event_espresso') . event_espresso_user_login_link() . '.';
         } else {
             //Serve up the event list
             //As of version 3.0.17 the event list details have been moved to event_list_display.php
             switch (event_espresso_get_status($event_id)) {
                 case 'NOT_ACTIVE':
                     //Don't show the event if any of the above are true
                     break;
                 default:
                     /* skip secondary (waitlist) events */
                     $event_status = event_espresso_get_is_active($event_id);
                     if ($event_status['status'] == 'SECONDARY') {
                         break;
                     }
                     /* group recurring events */
                     $is_new_event_type = $last_recurrence_id == 0 || $last_recurrence_id != $recurrence_id;
                     if ($is_new_event_type) {
                         $events_type_index++;
                         $events_of_same_type[$events_type_index] = array();
                     }
                     $event_data = array('event_id' => $event_id, 'event_page_id' => $event_page_id, 'event_name' => $event_name, 'event_desc' => $event_desc, 'start_date' => $start_date, 'end_date' => $end_date, 'reg_limit' => $reg_limit, 'registration_url' => $registration_url, 'overflow_event_id' => $overflow_event_id);
                     array_push($events_of_same_type[$events_type_index], $event_data);
                     $last_recurrence_id = $recurrence_id;
                     break;
             }
         }
     }
     /* group recurring events */
     foreach ($events_of_same_type as $events_group) {
         if (empty($path)) {
             include $template_name;
         } else {
             include $path;
         }
     }
     /* end group recurring events */
     //Check to see how many database queries were performed
     //echo '<p>Database Queries: ' . get_num_queries() .'</p>';
     espresso_registration_footer();
 }
function espresso_pending_registration_approval($registration_id)
{
    global $wpdb, $org_options;
    //Get the event information
    $events = $wpdb->get_results("SELECT ed.* FROM " . EVENTS_DETAIL_TABLE . " ed \n\t\t\t\t\tJOIN " . EVENTS_ATTENDEE_TABLE . " ea\n\t\t\t\t\tON ed.id = ea.event_id\n\t\t\t\t\tWHERE 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 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $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 = '<a href="' . $event_url . '">' . $event_name . '</a>';
    $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 = $attendee->payment_date;
        $phone = $attendee->phone;
        $event_time = $attendee->event_time;
        $end_time = $attendee->end_time;
        $date = $attendee->date;
        $pre_approve = $attendee->pre_approve;
    }
    event_espresso_send_attendee_registration_approval_pending($registration_id);
    require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/pending_approval.php";
}