Ejemplo n.º 1
0
 function espresso_ical_prepare_by_meta($meta, $title = '', $image = '', $link_only = FALSE)
 {
     global $org_options, $wpdb;
     do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
     if (!empty($org_options['display_ical_download']) && $org_options['display_ical_download'] == 'N' || !isset($org_options['display_ical_download'])) {
         return;
     }
     $start_date = strtotime($meta['start_date'] . ' ' . $meta['start_time']);
     $end_date = strtotime($meta['end_date'] . ' ' . $meta['end_time']);
     $title = empty($text) ? __('iCal Import', 'event_espresso') : $title;
     $image = empty($image) ? '<img src="' . EVENT_ESPRESSO_PLUGINFULLURL . 'images/icons/calendar_link.png">' : $image;
     if ($link_only == TRUE) {
         $image = $title;
     }
     $array = array('iCal' => 'true', 'currentyear' => date('Y'), 'currentmonth' => date('m'), 'currentday' => date('d'), 'currenttime' => date('His'), 'event_id' => $meta['event_id'], 'registration_id' => !empty($meta['registration_id']) ? $meta['registration_id'] : $_SESSION['espresso_session']['id'], 'contact_email' => $meta['contact_email'], 'startyear' => date('Y', $start_date), 'startmonth' => date('m', $start_date), 'startday' => date('d', $start_date), 'starttime' => date('His', $start_date), 'endyear' => date('Y', $end_date), 'endmonth' => date('m', $end_date), 'endday' => date('d', $end_date), 'endtime' => date('His', $end_date), 'event_summary' => stripslashes($meta['event_name']), 'eereg_url' => espresso_reg_url($meta['event_id']), 'site_url' => site_url(), 'organization' => $org_options['organization'], 'location' => str_replace(array('<br>', '<br />'), ' ', $meta['location']));
     $url = add_query_arg($array, site_url());
     $html = '<a  href="' . wp_kses($url, '') . '" target="_blank" id="espresso_ical_' . $meta['event_id'] . '" class="espresso_ical_link" title="' . $title . '">' . $image . '</a>';
     return $html;
 }
Ejemplo n.º 2
0
 function espresso_display_featured_image($event_id, $image_url, $class = '', $title = '')
 {
     global $org_options;
     if (!empty($org_options['display_featured_image']) && $org_options['display_featured_image'] == 'N' || !isset($org_options['display_featured_image'])) {
         return;
     }
     if (empty($image_url)) {
         return;
     }
     $class = empty($class) ? 'ee-featured-image' : $class;
     $title = empty($title) ? __('Featured Image', 'event_espresso') : $title;
     $align = empty($align) ? 'right' : $align;
     $output = '<div class="' . $class . '" id="espresso_featured_image-' . $event_id . '"><a href="' . espresso_reg_url($event_id) . '"><img title="' . $title . '" src="' . $image_url . '" /></a></div>';
     return $output;
 }
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";
}
Ejemplo n.º 4
0
function event_espresso_edit_list()
{
    global $wpdb, $org_options;
    define('EVT_ADMIN_URL', admin_url('admin.php?page=events'));
    $max_rows = isset($_REQUEST['max_rows']) & !empty($_REQUEST['max_rows']) ? absint($_REQUEST['max_rows']) : 50;
    $start_rec = isset($_REQUEST['start_rec']) && !empty($_REQUEST['start_rec']) ? absint($_REQUEST['start_rec']) : 0;
    $records_to_show = " LIMIT {$max_rows} OFFSET {$start_rec} ";
    //Dates
    $curdate = date('Y-m-d');
    $this_year_r = date('Y');
    $this_month_r = date('m');
    $days_this_month = date('t', strtotime($curdate));
    $month_range = isset($_REQUEST['month_range']) && !empty($_REQUEST['month_range']) ? sanitize_text_field($_REQUEST['month_range']) : FALSE;
    $category_id = isset($_REQUEST['category_id']) && !empty($_REQUEST['category_id']) ? sanitize_text_field($_REQUEST['category_id']) : FALSE;
    $today_filter = isset($_REQUEST['today']) && $_REQUEST['today'] == 'true' ? TRUE : FALSE;
    $this_month_filter = isset($_REQUEST['this_month']) && $_REQUEST['this_month'] == 'true' ? TRUE : FALSE;
    $event_status = isset($_POST['event_status']) && !empty($_POST['event_status']) ? sanitize_text_field($_REQUEST['event_status']) : FALSE;
    if (isset($_POST['delete_event'])) {
        if (is_array($_POST['checkbox'])) {
            while (list($key, $value) = each($_POST['checkbox'])) {
                $del_id = $key;
                event_espresso_delete_event($del_id);
            }
        }
        ?>
		<div id="message" class="updated fade">
			<p><strong>
					<?php 
        _e('Event(s) have been permanently deleted.', 'event_espresso');
        ?>
				</strong></p>
		</div>
		<?php 
    }
    if (isset($_POST['perm_delete_event'])) {
        if (is_array($_POST['checkbox'])) {
            while (list($key, $value) = each($_POST['checkbox'])) {
                $del_id = $key;
                event_espresso_empty_event_trash($del_id);
            }
        }
        ?>

		<div id="message" class="updated fade">
			<p><strong>
					<?php 
        _e('Event(s) have been permanently deleted.', 'event_espresso');
        ?>
				</strong></p>
		</div>
		<?php 
    }
    $recurrence_icon = '';
    if (defined('EVENT_ESPRESSO_RECURRENCE_MODULE_ACTIVE')) {
        $recurrence_icon = '<img src="' . EVENT_ESPRESSO_PLUGINFULLURL . 'images/arrow_rotate_clockwise.png" alt="Recurring Event" title="Recurring Event" class="re_fr" />';
    }
    require_once 'queries.php';
    if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/admin_reports_filters.php')) {
        require_once EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/admin_reports_filters.php';
    } else {
        echo '<p><strong>' . __('Advanced filters are now available in the premium versions.', 'event_espresso') . '</strong> <a href="http://eventespresso.com/download/" target="_blank">' . __('Upgrade Now!', 'event_espresso') . '</a></p>';
        //$total_events = espresso_total_events();
    }
    if ($month_range !== FALSE) {
        $pieces = explode('-', $month_range, 3);
        $year_r = $pieces[0];
        $month_r = $pieces[1];
    }
    $group = '';
    $sql = '';
    //Check if the venue manager is turned on
    $use_venue_manager = isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y' ? TRUE : FALSE;
    $is_regional_manager = FALSE;
    //This checks to see if the user is a regional manager and creates a union to join the events that are in the users region based on the venue/locale combination
    if (function_exists('espresso_member_data') && espresso_member_data('role') == 'espresso_group_admin') {
        $is_regional_manager = TRUE;
        $group = get_user_meta(espresso_member_data('id'), "espresso_group", TRUE);
        if ($group != '0' && !empty($group)) {
            $sql = "(SELECT e.id event_id, e.event_name, e.event_identifier, e.reg_limit, e.registration_start, ";
            $sql .= " e.start_date, e.is_active, e.recurrence_id, e.registration_startT, e.wp_user ";
            //Get the venue information
            if ($use_venue_manager) {
                $sql .= ", v.name AS venue_title, v.address AS venue_address, v.address2 AS venue_address2, v.city AS venue_city, v.state AS venue_state, v.zip AS venue_zip, v.country AS venue_country ";
            } else {
                $sql .= ", e.venue_title, e.phone, e.address, e.address2, e.city, e.state, e.zip, e.country ";
            }
            //Get the locale fields
            if ($use_venue_manager) {
                $sql .= ", lc.name AS locale_name, e.wp_user ";
            }
            $sql .= " FROM " . EVENTS_DETAIL_TABLE . " e ";
            //Join the categories
            if ($today_filter) {
                $sql .= " JOIN " . EVENTS_CATEGORY_REL_TABLE . " cr ON cr.event_id = e.id ";
                $sql .= " JOIN " . EVENTS_CATEGORY_TABLE . " c ON  c.id = cr.cat_id ";
            }
            //Join the venues and locales
            if (!empty($group) && $use_venue_manager) {
                $sql .= " LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " vr ON vr.event_id = e.id ";
                $sql .= " LEFT JOIN " . EVENTS_VENUE_TABLE . " v ON v.id = vr.venue_id ";
                $sql .= " LEFT JOIN " . EVENTS_LOCALE_REL_TABLE . " l ON  l.venue_id = vr.venue_id ";
                $sql .= " LEFT JOIN " . EVENTS_LOCALE_TABLE . " lc ON lc.id = l.locale_id ";
            }
            //Event status filter
            $sql .= $event_status !== FALSE && $event_status != 'IA' ? " WHERE e.event_status = '" . $event_status . "' " : " WHERE e.event_status != 'D' ";
            //Category filter
            $sql .= $category_id !== FALSE ? " AND c.id = '" . $category_id . "' " : '';
            //Find events in the locale
            $sql .= !empty($group) && $use_venue_manager == true ? " AND l.locale_id IN (" . implode(",", $group) . ") " : '';
            //Month filter
            if ($month_range !== FALSE) {
                $sql .= " AND e.start_date BETWEEN '" . date('Y-m-d', strtotime($year_r . '-' . $month_r . '-01')) . "' AND '" . date('Y-m-d', strtotime($year_r . '-' . $month_r . '-31')) . "' ";
            }
            //Todays events filter
            if ($today_filter) {
                $sql .= " AND e.start_date = '" . $curdate . "' ";
            }
            //This months events filter
            if ($this_month_filter) {
                $sql .= " AND e.start_date BETWEEN '" . date('Y-m-d', strtotime($this_year_r . '-' . $this_month_r . '-01')) . "' AND '" . date('Y-m-d', strtotime($this_year_r . '-' . $this_month_r . '-' . $days_this_month)) . "' ";
            }
            $sql .= ") UNION ";
        }
    }
    //This is the standard query to retrieve the events
    $sql .= "(SELECT e.id event_id, e.event_name, e.event_identifier, e.reg_limit, e.registration_start, ";
    $sql .= " e.start_date, e.is_active, e.recurrence_id, e.registration_startT, e.wp_user ";
    //Get the venue information
    if ($use_venue_manager) {
        //If using the venue manager, we need to get those fields
        $sql .= ", v.name AS venue_title, v.address AS venue_address, v.address2 AS venue_address2, v.city AS venue_city, v.state AS venue_state, v.zip AS venue_zip, v.country AS venue_country ";
    } else {
        //Otherwise we need to get the address fields from the individual events
        $sql .= ", e.venue_title, e.phone, e.address, e.address2, e.city, e.state, e.zip, e.country ";
    }
    //get the locale fields
    if ($is_regional_manager && $use_venue_manager) {
        $sql .= ", lc.name AS locale_name, e.wp_user ";
    }
    $sql .= " FROM " . EVENTS_DETAIL_TABLE . " e ";
    //Join the categories
    if ($category_id != FALSE) {
        $sql .= " JOIN " . EVENTS_CATEGORY_REL_TABLE . " cr ON cr.event_id = e.id ";
        $sql .= " JOIN " . EVENTS_CATEGORY_TABLE . " c ON  c.id = cr.cat_id ";
    }
    //Join the venues
    if ($use_venue_manager == true) {
        $sql .= " LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " vr ON vr.event_id = e.id ";
        $sql .= " LEFT JOIN " . EVENTS_VENUE_TABLE . " v ON v.id = vr.venue_id ";
    }
    //Join the locales
    if (isset($is_regional_manager) && $is_regional_manager == true && $use_venue_manager == true) {
        $sql .= " LEFT JOIN " . EVENTS_LOCALE_REL_TABLE . " l ON  l.venue_id = vr.venue_id ";
        $sql .= " LEFT JOIN " . EVENTS_LOCALE_TABLE . " lc ON lc.id = l.locale_id ";
    }
    //Event status filter
    $sql .= isset($_POST['event_status']) && ($_POST['event_status'] != '' && $_POST['event_status'] != 'IA') ? " WHERE e.event_status = '" . $_POST['event_status'] . "' " : " WHERE e.event_status != 'D' ";
    //Category filter
    $sql .= $category_id !== FALSE ? " AND c.id = '" . $category_id . "' " : '';
    //Month filter
    if ($_POST['month_range'] != '') {
        $sql .= " AND e.start_date BETWEEN '" . date('Y-m-d', strtotime($year_r . '-' . $month_r . '-01')) . "' AND '" . date('Y-m-d', strtotime($year_r . '-' . $month_r . '-31')) . "' ";
    }
    //Todays events filter
    if (isset($_REQUEST['today']) && $_REQUEST['today'] == 'true') {
        $sql .= " AND e.start_date = '" . $curdate . "' ";
    }
    //This months events filter
    if (isset($_REQUEST['this_month']) && $_REQUEST['this_month'] == 'true') {
        $sql .= " AND e.start_date BETWEEN '" . date('Y-m-d', strtotime($this_year_r . '-' . $this_month_r . '-01')) . "' AND '" . date('Y-m-d', strtotime($this_year_r . '-' . $this_month_r . '-' . $days_this_month)) . "' ";
    }
    //If user is an event manager, then show only their events
    if (function_exists('espresso_member_data') && (espresso_member_data('role') == 'espresso_event_manager' || espresso_member_data('role') == 'espresso_group_admin')) {
        $sql .= " AND e.wp_user = '******'id') . "' ";
    }
    $sql .= ") ORDER BY start_date DESC ";
    $sql .= $records_to_show;
    $events = $wpdb->get_results($sql);
    $total_events = $wpdb->num_rows;
    ?>

	<form id="event-admin-list-page-select-frm" name="event_admin_list_page_select_frm" method="post" action="<?php 
    echo EVT_ADMIN_URL;
    ?>
">
		<div id="event-admin-list-page-select-dv" class="admin-list-page-select-dv">
			<input name="navig" value="<?php 
    _e('Retrieve', 'event_espresso');
    ?>
" type="submit" class="button-secondary">
			<?php 
    $rows = array(50 => 50, 100 => 100, 250 => 250, 500 => 500, 100000 => 'all');
    ?>
			<select name="max_rows" size="1">
				<?php 
    foreach ($rows as $key => $value) {
        ?>
				<?php 
        $selected = $key == $max_rows ? ' selected="selected"' : '';
        ?>
				<option value="<?php 
        echo $key;
        ?>
"<?php 
        echo $selected;
        ?>
><?php 
        echo $value;
        ?>
&nbsp;&nbsp;</option>
				<?php 
    }
    ?>
			</select>		
			<?php 
    _e('rows from the db at a time', 'event_espresso');
    ?>
			<input name="start_rec" value="<?php 
    echo $start_rec;
    ?>
" class="textfield" type="hidden">
			<?php 
    if ($start_rec > 0 && $max_rows < 100000) {
        $prev_rows = $start_rec > $max_rows ? $start_rec - $max_rows - 1 : 0;
        $prev_rows_url = add_query_arg(array('max_rows' => $max_rows, 'start_rec' => $prev_rows), EVT_ADMIN_URL);
        ?>
			<a id="event-admin-load-prev-rows-btn" href="<?php 
        echo $prev_rows_url;
        ?>
" title="load prev rows" class="button-secondary">
				<?php 
        echo __('Previous', 'event_espresso') . ' ' . $max_rows . ' ' . __('rows', 'event_espresso');
        ?>
			</a>
			<?php 
    }
    ?>
			<?php 
    if ($total_events >= $max_rows && $max_rows < 100000) {
        $next_rows = $start_rec + $max_rows + 1;
        $next_rows_url = add_query_arg(array('max_rows' => $max_rows, 'start_rec' => $next_rows), EVT_ADMIN_URL);
        ?>
			<a id="event-admin-load-next-rows-btn" href="<?php 
        echo $next_rows_url;
        ?>
" title="load next rows" class="button-secondary">
			<?php 
        echo __('Next', 'event_espresso') . ' ' . $max_rows . ' ' . __('rows', 'event_espresso');
        ?>
			</a> 
			<?php 
    }
    ?>
		</div>
	</form>

	<form id="form1" name="form1" method="post" action="admin.php?page=events<?php 
    //echo $_SERVER["REQUEST_URI"]
    ?>
">
		<table id="table" class="widefat event-list" width="100%">
			<thead>
				<tr>
					<th class="manage-column column-cb check-column" id="cb" scope="col" style="width:28px;"><input type="checkbox"></th>

					<th class="manage-column column-comments num" id="id" style="padding-top:7px; width:3%;" scope="col" title="Click to Sort">
						<span><?php 
    _e('ID', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-title" id="name" scope="col" title="Click to Sort" style="width:26%;">
						<span><?php 
    _e('Name', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-title" id="name" scope="col" title="Click to Sort" style="width:12%;">
						<span><?php 
    _e('Venue', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-author" id="start" scope="col" title="Click to Sort" style="width:12%;">
						<span><?php 
    _e('Start Date', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-author" id="start" scope="col" title="Click to Sort" style="width:10%;">
						<span><?php 
    _e('Start Time', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-date" id="dow" scope="col" title="Click to Sort" style="width:6%;";>
							<span><?php 
    _e('DoW', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-date" id="begins" scope="col" title="Click to Sort" style="width:12%;">
						<span><?php 
    _e('Reg Begins', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-date" id="status" scope="col" title="Click to Sort" style="width:10%;">
						<span><?php 
    _e('Status', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>
					<?php 
    if (function_exists('espresso_is_admin') && espresso_is_admin() == true && $espresso_premium == true) {
        ?>
						<th class="manage-column column-date" id="status" scope="col" title="Click to Sort" style="width:10%;">
							<span><?php 
        _e('Creator', 'event_espresso');
        ?>
</span>
							<span class="sorting-indicator"></span>
						</th>
					<?php 
    }
    ?>
					<th class="manage-column column-date" id="attendees" scope="col" title="Click to Sort" style="width:9%;">
						<span><?php 
    _e('Attendees', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>
					<th class="manage-column column-author" id="actions" scope="col" style="width:25%;">
						<?php 
    _e('Actions', 'event_espresso');
    ?>
					</th>

				</tr>
			</thead>

			<tbody>
				<?php 
    if ($total_events > 0) {
        foreach ($events as $event) {
            //print_r ($event);
            $event_id = $event->event_id;
            $event_name = stripslashes_deep($event->event_name);
            $event_identifier = stripslashes_deep($event->event_identifier);
            $reg_limit = isset($event->reg_limit) ? $event->reg_limit : '';
            $registration_start = isset($event->registration_start) ? $event->registration_start : '';
            $start_date = isset($event->start_date) ? $event->start_date : '';
            $end_date = isset($event->end_date) ? $event->end_date : '';
            $is_active = isset($event->is_active) ? $event->is_active : '';
            $status = array();
            $status = event_espresso_get_is_active($event_id);
            $recurrence_id = isset($event->recurrence_id) ? $event->recurrence_id : '';
            $registration_startT = isset($event->registration_startT) ? $event->registration_startT : '';
            $event_address = isset($event->address) ? $event->address : '';
            $event_address2 = isset($event->address2) ? $event->address2 : '';
            $event_city = isset($event->city) ? $event->city : '';
            $event_state = isset($event->state) ? $event->state : '';
            $event_zip = isset($event->zip) ? $event->zip : '';
            $event_country = isset($event->country) ? $event->country : '';
            //added new
            $venue_title = isset($event->venue_title) ? $event->venue_title : '';
            $venue_locale = isset($event->locale_name) ? $event->locale_name : '';
            $wp_user = isset($event->wp_user) ? $event->wp_user : '';
            $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 : '');
            $dow = date("D", strtotime($start_date));
            ob_start();
            ?>
						<tr>
							<td class="check-column" style="padding:7px 0 22px 7px; vertical-align:top;"><!--Delete Events-->
								<?php 
            echo '<input name="checkbox[' . $event_id . ']" type="checkbox"  title="Delete Event ' . $event_name . '" />';
            ?>
</td>

							<td class="column-comments" style="padding-top:3px;"><?php 
            echo $event_id;
            ?>
</td>

							<td class="post-title page-title"><strong><a class="row-title" href="admin.php?page=events&action=edit&event_id=<?php 
            echo $event_id;
            ?>
"><?php 
            echo $event_name;
            ?>
</a> <?php 
            echo $recurrence_id > 0 ? $recurrence_icon : '';
            ?>
 </strong>
								<div class="row-actions"><span><a href="<?php 
            echo espresso_reg_url($event_id);
            ?>
" target="_blank"><?php 
            _e('View', 'event_espresso');
            ?>
</a> | </span><span class='edit'><a href="admin.php?page=events&amp;action=edit&amp;event_id=<?php 
            echo $event_id;
            ?>
"><?php 
            _e('Edit', 'event_espresso');
            ?>
</a> | </span><span class='delete'><a onclick="return confirmDelete();" href='admin.php?page=events&amp;action=delete&amp;event_id=<?php 
            echo $event_id;
            ?>
'><?php 
            _e('Delete', 'event_espresso');
            ?>
</a></span> | <span><a href="admin.php?page=events&amp;event_admin_reports=list_attendee_payments&amp;event_id=<?php 
            echo $event_id;
            ?>
"><?php 
            _e('Attendees', 'event_espresso');
            ?>
</a> | </span><span><a href="#" onclick="window.location='<?php 
            echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&amp;event_id=" . $event_id . "&amp;export=report&action=payment&amp;type=excel";
            ?>
'" title="<?php 
            _e('Export to Excel', 'event_espresso');
            ?>
"><?php 
            _e('Export', 'event_espresso');
            ?>
</a></span></div></td>

							<td class="author"><?php 
            echo $venue_title != '' ? $venue_title : '';
            echo $venue_locale != '' ? '<br />[' . $venue_locale . ']' : '';
            ?>
</td>

							<td class="author"><?php 
            echo event_date_display($start_date, get_option('date_format'));
            ?>
</td>

							<td class="author"><?php 
            echo event_espresso_get_time($event_id, 'start_time');
            ?>
</td>

							<td class="date"><?php 
            echo $dow;
            ?>
</td>

							<td class="date"><?php 
            echo event_date_display($registration_start, get_option('date_format'));
            ?>
 <br />
								<?php 
            echo $registration_startT;
            ?>
</td>

							<td class="date"><?php 
            echo $status['display'];
            ?>
</td>

							<?php 
            if (function_exists('espresso_is_admin') && espresso_is_admin() == true && $espresso_premium == true) {
                $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;
                ?>
								<td class="date"><?php 
                echo 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>)';
                ?>
									<?php 
                echo $user_co_org != '' ? '<br />[' . espresso_user_meta($wp_user, 'company') . ']' : '';
                ?>
								</td>
							<?php 
            }
            ?>

							<td class="author"><a href="admin.php?page=events&amp;event_admin_reports=list_attendee_payments&amp;event_id=<?php 
            echo $event_id;
            ?>
"><?php 
            echo get_number_of_attendees_reg_limit($event_id, 'num_attendees_slash_reg_limit');
            ?>
</a></td>
							<td class="date"><div style="width:180px;"><a href="<?php 
            echo espresso_reg_url($event_id);
            ?>
" title="<?php 
            _e('View Event', 'event_espresso');
            ?>
" target="_blank"><div class="view_btn"></div></a>

									<a href="admin.php?page=events&amp;action=edit&amp;event_id=<?php 
            echo $event_id;
            ?>
" title="<?php 
            _e('Edit Event', 'event_espresso');
            ?>
"><div class="edit_btn"></div></a>

									<a href="admin.php?page=events&amp;event_id=<?php 
            echo $event_id;
            ?>
&amp;event_admin_reports=list_attendee_payments" title="<?php 
            _e('View Attendees', 'event_espresso');
            ?>
"><div class="complete_btn"></div></a>
									<a href="admin.php?page=events&event_admin_reports=charts&event_id=<?php 
            echo $event_id;
            ?>
" title="<?php 
            _e('View Report', 'event_espresso');
            ?>
"><div class="reports_btn"></div></a>


									<a class="thickbox" href="#TB_inline?height=300&width=400&inlineId=unique_id_info_<?php 
            echo $event_id;
            ?>
" title="<?php 
            _e('Get Short URL/Shortcode', 'event_espresso');
            ?>
"><div class="shortcode_btn"></div></a>

									<a href="#" onclick="window.location='<?php 
            echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&amp;event_id=" . $event_id . "&amp;export=report&action=payment&amp;type=excel";
            ?>
'" title="<?php 
            _e('Export to Excel', 'event_espresso');
            ?>
"><div class="excel_exp_btn"></div></a>

									<a href="#" onclick="window.location='<?php 
            echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&event_id=" . $event_id . "&export=report&action=payment&type=csv";
            ?>
'" title="<?php 
            _e('Export to CSV', 'event_espresso');
            ?>
"><div class="csv_exp_btn"></div></a>

									<a href="admin.php?page=events&amp;event_admin_reports=event_newsletter&amp;event_id=<?php 
            echo $event_id;
            ?>
" title="<?php 
            _e('Email Attendees', 'event_espresso');
            ?>
"><div class="newsletter_btn"></div></a></div>

								<div id="unique_id_info_<?php 
            echo $event_id;
            ?>
" style="display:none">
									<?php 
            _e('<h2>Short URL/Shortcode</h2><p>This is the short URL to this event:</p><p><span  class="updated fade">' . espresso_reg_url($event_id) . '</span></p><p>This will show the registration form for this event just about anywhere. Copy and paste the following shortcode into any page or post.</p><p><span  class="updated fade">[SINGLEEVENT single_event_id="' . $event_identifier . '"]</span></p> <p class="red_text"> Do not use in place of the main events page that is set in the Organization Settings page.', 'event_espresso');
            ?>
								</div></td>
						</tr>
						<?php 
            //echo $_REQUEST['event_status'];
            if (!empty($_REQUEST['event_status'])) {
                $content = ob_get_contents();
                ob_end_clean();
                switch ($_REQUEST['event_status']) {
                    case 'A':
                        switch (event_espresso_get_status($event_id, empty($event_meta) ? '' : $event_meta)) {
                            case 'NOT_ACTIVE':
                                //Don't show the event if any of the above are true
                                break;
                            default:
                                echo $content;
                                break;
                        }
                        break;
                    case 'IA':
                        switch (event_espresso_get_status($event_id)) {
                            case 'NOT_ACTIVE':
                                echo $content;
                                break;
                            default:
                                //Don't show the event if any of the above are true
                                break;
                        }
                        break;
                    default:
                        echo $content;
                        break;
                }
            }
        }
        //End foreach ($events as $event){
    }
    ?>

			</tbody>
		</table>
		<div style="clear:both; margin-bottom:30px;">
			<input type="checkbox" name="sAll" onclick="selectAll(this)" />
			<strong>
				<?php 
    _e('Check All', 'event_espresso');
    ?>
			</strong><?php 
    if (isset($_POST['event_status']) && $_POST['event_status'] == 'D') {
        ?>
				<input name="perm_delete_event" type="submit" class="button-secondary" id="perm_delete_event" value="<?php 
        _e('Permanently Delete Events(s)', 'event_espresso');
        ?>
" style="margin:10px 0 0 10px;" onclick="return confirmDelete();" />
			<?php 
    } else {
        ?>
				<input name="delete_event" type="submit" class="button-secondary" id="delete_event" value="<?php 
        _e('Delete Events(s)', 'event_espresso');
        ?>
" style="margin:10px 0 0 10px;" onclick="return confirmDelete();" />

				<a  style="margin-left:5px"class="button-secondary" href="admin.php?page=events&amp;action=csv_import"><?php 
        _e('Import Events', 'event_espresso');
        ?>
</a>
				<?php 
        if (function_exists('espresso_attendee_import') && $espresso_premium == true) {
            ?>
<a style="margin-left:5px" class="button-secondary" href="admin.php?page=espresso_attendee_import"><?php 
            _e('Import Attendees', 'event_espresso');
            ?>
</a><?php 
        }
        ?>

				<a style="margin-left:5px" class="button-secondary" href="#" onclick="window.location='<?php 
        echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&amp;id=" . $event_id . "&amp;export=report&action=payment&amp;type=excel&all_events=true";
        ?>
'" title="<?php 
        _e('Export to Excel', 'event_espresso');
        ?>
"><?php 
        _e('Export All Attendee Data', 'event_espresso');
        ?>
</a>
				<a class="button-secondary" href="#" onclick="window.location='<?php 
        echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&amp;id=" . $event_id . "&amp;export=report&action=event&amp;type=excel&all_events=true";
        ?>
'" title="<?php 
        _e('Export to Excel', 'event_espresso');
        ?>
"><?php 
        _e('Export All Event Data', 'event_espresso');
        ?>
</a>
				<a style="margin-left:5px" class="button-primary" href="admin.php?page=events&amp;action=add_new_event"><?php 
        _e('Add New Event', 'event_espresso');
        ?>
</a>
			<?php 
    }
    ?>
  </div>
	</form>
	<h4 style="clear:both"><?php 
    _e('Legend', 'event_espresso');
    ?>
</h4>
	<dl style="float:left; margin-left:10px; width:200px">
		<?php 
    echo defined('EVENT_ESPRESSO_RECURRENCE_MODULE_ACTIVE') ? '<dt><img src="' . EVENT_ESPRESSO_PLUGINFULLURL . 'images/arrow_rotate_clockwise.png" alt="Recurring Event" title="Recurring Event"  /> - ' . __('Recurring Event', 'event_espresso') . '</dt>' : '';
    ?>
		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/magnifier.png" width="16" height="16" alt="<?php 
    _e('View Event', 'event_espresso');
    ?>
" /> - <?php 
    _e('View Event', 'event_espresso');
    ?>
</dt>

		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/calendar_edit.png" width="16" height="16" alt="<?php 
    _e('Edit Event', 'event_espresso');
    ?>
" /> - <?php 
    _e('Edit Event', 'event_espresso');
    ?>
</dt>

		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/group.png" width="16" height="16" alt="<?php 
    _e('Event Attendees', 'event_espresso');
    ?>
" /> - <?php 
    _e('Event Attendees', 'event_espresso');
    ?>
</dt>
		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/chart_bar.png" width="16" height="16" alt="<?php 
    _e('Send Event Email', 'event_espresso');
    ?>
" /> - <?php 
    _e('View Report', 'event_espresso');
    ?>
</dt>


	</dl>

	<dl style="float:left; margin-left:10px;">
		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/tag.png" width="16" height="16" alt="<?php 
    _e('Short Code', 'event_espresso');
    ?>
" /> - <?php 
    _e('Short Code', 'event_espresso');
    ?>
</dt>
		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/excel_icon.png" width="16" height="16" alt="<?php 
    _e('Excel Spreadsheet', 'event_espresso');
    ?>
" /> - <?php 
    _e('Excel Export', 'event_espresso');
    ?>
</dt>

		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/csv_icon_sm.gif" width="16" height="16" alt="<?php 
    _e('CSV Spreadsheet', 'event_espresso');
    ?>
" /> - <?php 
    _e('CSV Export', 'event_espresso');
    ?>
</dt>

		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/email_go.png" width="16" height="16" alt="<?php 
    _e('View Report', 'event_espresso');
    ?>
" /> - <?php 
    _e('Event Newsletter', 'event_espresso');
    ?>
</dt>
	</dl>

	<script>
		jQuery(document).ready(function($) {
			/* show the table data */
			var mytable = $('#table').dataTable( {
				"sDom": 'Clfrtip',
				"aoColumns": [
					{ "bSortable": false },
					null,
					null,
					null,
					null,
					null,
					null,
					null,
					null,
	<?php 
    echo function_exists('espresso_is_admin') && espresso_is_admin() == true ? 'null,' : '';
    ?>
					null,
					{ "bSortable": false }
				],
				"aoColumnDefs": [
					{ "bVisible": false, "aTargets": [ <?php 
    echo $org_options['use_venue_manager'] == 'Y' ? '' : '3,';
    ?>
 6 ] }
				],
				"oColVis": {
					"aiExclude": [ 0, 1, 2 ],
					"buttonText": "Filter: Show / Hide Columns",
					"bRestore": true
				},
				"bAutoWidth": false,
				"bStateSave": true,
				"sPaginationType": "full_numbers",
				"oLanguage": {	"sSearch": "<strong><?php 
    _e('Live Search Filter', 'event_espresso');
    ?>
:</strong>",
					"sZeroRecords": "<?php 
    _e('No Records Found!', 'event_espresso');
    ?>
" }

			});
		});
	</script>

	<div id="coupon_code_info" style="display:none">
		<h2><?php 
    _e('Coupon/Promo Code', 'event_espresso');
    ?>
</h2><p><?php 
    _e('This is used to apply discounts to events.', 'event_espresso');
    ?>
</p><p><?php 
    _e('A coupon or promo code could can be anything you want. For example: Say you have an event that costs', 'event_espresso');
    ?>
 <?php 
    echo $org_options['currency_symbol'];
    ?>
200. <?php 
    _e('If you supplied a promo like "PROMO50" and entered 50.00 into the "Discount w/Promo Code" field your event will be discounted', 'event_espresso');
    ?>
  <?php 
    echo $org_options['currency_symbol'];
    ?>
50.00, <?php 
    _e('Bringing the cost of the event to', 'event_espresso');
    ?>
 <?php 
    echo $org_options['currency_symbol'];
    ?>
150.</p>
	</div>
	<div id="unique_id_info" style="display:none">
		<h2><?php 
    _e('Event Identifier', 'event_espresso');
    ?>
</h2><p><?php 
    _e('This should be a unique identifier for the event. Example: "Event1" (without qoutes.)</p><p>The unique ID can also be used in individual pages using the', 'event_espresso');
    ?>
 [SINGLEEVENT single_event_id="<?php 
    _e('Unique Event ID', 'event_espresso');
    ?>
"] <?php 
    _e('shortcode', 'event_espresso');
    ?>
.</p>
	</div>
	<?php 
    echo event_espresso_custom_email_info();
}
Ejemplo n.º 5
0
 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);
     }
 }
Ejemplo n.º 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>';
    }
function event_espresso_edit_list()
{
    global $wpdb, $org_options;
    require_once EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/event-management/queries.php';
    if (!defined('EVT_ADMIN_URL')) {
        define('EVT_ADMIN_URL', admin_url('admin.php?page=events'));
    }
    // DELETE EVENT
    if (isset($_POST['delete_event'])) {
        if (is_array($_POST['checkbox'])) {
            while (list($key, $value) = each($_POST['checkbox'])) {
                $del_id = $key;
                event_espresso_delete_event($del_id);
            }
        }
        ?>
		<div id="message" class="updated fade">
			<p><strong>
					<?php 
        _e('Event(s) have been permanently deleted.', 'event_espresso');
        ?>
				</strong></p>
		</div>
		<?php 
    }
    // REALLY REALLY DELETE EVENT THIS TIME !!!
    if (isset($_POST['perm_delete_event'])) {
        if (is_array($_POST['checkbox'])) {
            while (list($key, $value) = each($_POST['checkbox'])) {
                $del_id = $key;
                event_espresso_empty_event_trash($del_id);
            }
        }
        ?>
		<div id="message" class="updated fade">
			<p><strong>
					<?php 
        _e('Event(s) have been permanently deleted.', 'event_espresso');
        ?>
				</strong></p>
		</div>
		<?php 
    }
    // dejavu ?
    $recurrence_icon = '';
    if (defined('EVENT_ESPRESSO_RECURRENCE_MODULE_ACTIVE')) {
        $recurrence_icon = '<img src="' . EVENT_ESPRESSO_PLUGINFULLURL . 'images/arrow_rotate_clockwise.png" alt="Recurring Event" title="Recurring Event" class="re_fr" />';
    }
    // get SQL for query
    $SQL = espresso_generate_events_page_list_table_sql();
    $events = $wpdb->get_results($SQL, OBJECT_K);
    $total_events = $wpdb->num_rows;
    //echo '<h4>' . $wpdb->last_query . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
    //printr( $events, '$events  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
    if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/admin_reports_filters.php')) {
        require_once EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/admin_reports_filters.php';
        espresso_display_admin_reports_filters($total_events);
    } else {
        ?>
		<p>
			<strong><?php 
        _e('Advanced filters are available in the premium versions.', 'event_espresso');
        ?>
</strong> 
			<a href="http://eventespresso.com/pricing/?utm_source=ee_plugin_admin&utm_medium=link&utm_content=Advanced+filters+are+available+in+the+premium+versions<?php 
        echo '+ee_version_' . EVENT_ESPRESSO_VERSION;
        ?>
&utm_campaign=event_overview_tab" target="_blank">
				<?php 
        _e('Upgrade Now!', 'event_espresso');
        ?>
			</a>
		</p>
		<?php 
    }
    ?>
	<form id="form1" name="form1" method="post" action="admin.php?page=events<?php 
    //echo $_SERVER["REQUEST_URI"]
    ?>
">
		<table id="table" class="widefat event-list" width="100%">
			<thead>
				<tr>
					<th class="manage-column column-cb check-column" id="cb" scope="col" style="width:28px;"><input type="checkbox"></th>

					<th class="manage-column column-comments num" id="id" style="padding-top:7px; width:3%;" scope="col" title="Click to Sort">
						<span><?php 
    _e('ID', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-title" id="name" scope="col" title="Click to Sort" style="width:26%;">
						<span><?php 
    _e('Name', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-title" id="name" scope="col" title="Click to Sort" style="width:12%;">
						<span><?php 
    _e('Venue', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-date" id="dow" scope="col" title="Click to Sort" style="width:4%;";>
						<span><?php 
    _e('DoW', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-author" id="start" scope="col" title="Click to Sort" style="width:12%;">
						<span><?php 
    _e('Start Date', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-author" id="start" scope="col" title="Click to Sort" style="width:7%;">
						<span><?php 
    _e('Start Time', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-date" id="begins" scope="col" title="Click to Sort" style="width:16%;">
						<span><?php 
    _e('Reg Begins', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>

					<th class="manage-column column-date" id="status" scope="col" title="Click to Sort" style="width:8%;">
						<span><?php 
    _e('Status', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>
					<?php 
    if (function_exists('espresso_is_admin') && espresso_is_admin() == true && $espresso_premium == true) {
        ?>
						<th class="manage-column column-date" id="status" scope="col" title="Click to Sort" style="width:10%;">
							<span><?php 
        _e('Creator', 'event_espresso');
        ?>
</span>
							<span class="sorting-indicator"></span>
						</th>
	<?php 
    }
    ?>
					<th class="manage-column column-date" id="attendees" scope="col" title="Click to Sort" style="width:7%;">
						<span><?php 
    _e('Attendees', 'event_espresso');
    ?>
</span>
						<span class="sorting-indicator"></span>
					</th>
					<th class="manage-column column-author" id="actions" scope="col" style="width:25%;">
	<?php 
    _e('Actions', 'event_espresso');
    ?>
					</th>

				</tr>
			</thead>

			<tbody>
				<?php 
    if ($total_events > 0) {
        // instead of doing queries for each event while looping through them, we're going to grab a list of event IDs and consolidate our queries outside the loop
        $event_ids = implode(',', array_keys($events));
        // first let's grab attendee counts in one BIG query instead of individual queries for each event
        $SQL = "SELECT event_id, SUM(quantity) AS quantity FROM " . EVENTS_ATTENDEE_TABLE . " ";
        $SQL .= "WHERE (payment_status='Completed' OR payment_status='Pending' OR payment_status='Refund') ";
        $SQL .= "GROUP BY event_id HAVING event_id IN ( {$event_ids} )";
        $attendees = $wpdb->get_results($SQL, OBJECT_K);
        //					echo '<h4>' . $wpdb->last_query . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
        //					printr( $attendees, '$attendees  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
        // now let's grab start times for each event
        $SQL = "SELECT event_id, start_time FROM " . EVENTS_START_END_TABLE . " ";
        $SQL .= "WHERE event_id IN ( {$event_ids} ) ";
        $SQL .= 'ORDER BY start_time ASC';
        $start_times = $wpdb->get_results($SQL, OBJECT_K);
        //					echo '<h4>' . $wpdb->last_query . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
        //					printr( $start_times, '$start_times  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
        foreach ($events as $event) {
            //printr( $event, '$event  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' );
            $event_id = $event->event_id;
            $event_name = stripslashes_deep($event->event_name);
            $event_identifier = stripslashes_deep($event->event_identifier);
            $reg_limit = isset($event->reg_limit) ? $event->reg_limit : '';
            $start_date = isset($event->start_date) ? $event->start_date : '';
            $start_time = isset($start_times[$event_id]) ? $start_times[$event_id]->start_time : '';
            $end_date = isset($event->end_date) ? $event->end_date : '';
            $is_active = isset($event->is_active) ? $event->is_active : '';
            $status = array();
            $recurrence_id = isset($event->recurrence_id) ? $event->recurrence_id : '';
            $registration_start = isset($event->registration_start) ? $event->registration_start : '';
            $registration_startT = isset($event->registration_startT) ? $event->registration_startT : '';
            $event_address = isset($event->address) ? $event->address : '';
            $event_address2 = isset($event->address2) ? $event->address2 : '';
            $event_city = isset($event->city) ? $event->city : '';
            $event_state = isset($event->state) ? $event->state : '';
            $event_zip = isset($event->zip) ? $event->zip : '';
            $event_country = isset($event->country) ? $event->country : '';
            //added new
            $venue_title = isset($event->venue_title) ? stripslashes_deep($event->venue_title) : '';
            $venue_locale = isset($event->locale_name) ? $event->locale_name : '';
            $wp_user = isset($event->wp_user) ? $event->wp_user : '';
            $event_meta = array();
            $event_meta['is_active'] = $is_active;
            $event_meta['event_status'] = $event->event_status;
            $event_meta['start_time'] = $start_time;
            $event_meta['start_date'] = $start_date;
            $event_meta['registration_start'] = $registration_start;
            $event_meta['registration_startT'] = $registration_startT;
            $registration_end = $event_meta['registration_end'] = $event->registration_end;
            $registration_endT = $event_meta['registration_endT'] = $event->registration_endT;
            $status = event_espresso_get_is_active($event_id, $event_meta);
            //Get number of attendees
            $num_attendees = isset($attendees[$event_id]) ? $attendees[$event_id]->quantity : 0;
            $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 : '');
            $dow = date("D", strtotime($start_date));
            ob_start();
            ?>
						<tr>
							<td class="check-column" style="padding:7px 0 22px 7px; vertical-align:top;"><!--Delete Events-->
			<?php 
            echo '<input name="checkbox[' . $event_id . ']" type="checkbox"  title="Delete Event ' . $event_name . '" />';
            ?>
</td>

							<td class="column-comments" style="padding-top:3px;"><?php 
            echo $event_id;
            ?>
</td>

							<td class="post-title page-title">
								<strong><a class="row-title" href="admin.php?page=events&action=edit&event_id=<?php 
            echo $event_id;
            ?>
"><?php 
            echo $event_name;
            ?>
</a> <?php 
            echo $recurrence_id > 0 ? $recurrence_icon : '';
            ?>
 </strong>
								<div class="row-actions"><span><a href="<?php 
            echo espresso_reg_url($event_id);
            ?>
" target="_blank"><?php 
            _e('View', 'event_espresso');
            ?>
</a> | </span><span class='edit'><a href="admin.php?page=events&amp;action=edit&amp;event_id=<?php 
            echo $event_id;
            ?>
"><?php 
            _e('Edit', 'event_espresso');
            ?>
</a> | </span><span class='delete'><a onclick="return confirmDelete();" href='admin.php?page=events&amp;action=delete&amp;event_id=<?php 
            echo $event_id;
            ?>
'><?php 
            _e('Delete', 'event_espresso');
            ?>
</a></span> | <span><a href="admin.php?page=events&amp;event_admin_reports=list_attendee_payments&amp;event_id=<?php 
            echo $event_id;
            ?>
"><?php 
            _e('Attendees', 'event_espresso');
            ?>
</a> | </span><span><a href="#" onclick="window.location='<?php 
            echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&amp;event_id=" . $event_id . "&amp;export=report&action=payment&amp;type=excel";
            ?>
'" title="<?php 
            _e('Export to Excel', 'event_espresso');
            ?>
"><?php 
            _e('Export', 'event_espresso');
            ?>
</a></span></div>
							</td>

							<td class="author">
								<?php 
            echo $venue_title != '' ? $venue_title : '';
            echo $venue_locale != '' ? '<br />[' . $venue_locale . ']' : '';
            ?>
						
							</td>

							<td class="date"><?php 
            echo $dow;
            ?>
</td>

							<td class="author"><?php 
            echo event_date_display($start_date, get_option('date_format'));
            ?>
</td>

							<td class="author"><?php 
            echo date(get_option('time_format'), strtotime($start_time));
            ?>
</td>

							<td class="date"><?php 
            echo event_date_display($registration_start, get_option('date_format'));
            ?>
 @ <?php 
            echo date(get_option('time_format'), strtotime($registration_startT));
            ?>
</td>

							<td class="date"><?php 
            echo $status['display'];
            ?>
</td>

							<?php 
            if (function_exists('espresso_is_admin') && espresso_is_admin() == true && $espresso_premium == true) {
                $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;
                ?>
								<td class="date"><?php 
                echo 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>)';
                ?>
				<?php 
                echo $user_co_org != '' ? '<br />[' . espresso_user_meta($wp_user, 'company') . ']' : '';
                ?>
								</td>
			<?php 
            }
            ?>

							<td class="author">
								<?php 
            $attendees_url = add_query_arg(array('event_admin_reports' => 'list_attendee_payments', 'event_id' => $event_id, 'event_status' => $event->event_status), EVT_ADMIN_URL);
            ?>
								<a href="<?php 
            echo $attendees_url;
            ?>
"><?php 
            echo $num_attendees . '/' . $reg_limit;
            ?>
</a>
							</td>
							
							<td class="date">
								<div style="width:180px;">
								
									<a href="<?php 
            echo espresso_reg_url($event_id);
            ?>
" title="<?php 
            _e('View Event', 'event_espresso');
            ?>
" target="_blank">
										<div class="view_btn"></div>
									</a>

									<a href="admin.php?page=events&amp;action=edit&amp;event_id=<?php 
            echo $event_id;
            ?>
" title="<?php 
            _e('Edit Event', 'event_espresso');
            ?>
">
										<div class="edit_btn"></div>
									</a>

									<a href="admin.php?page=events&amp;event_id=<?php 
            echo $event_id;
            ?>
&amp;event_admin_reports=list_attendee_payments" title="<?php 
            _e('View Attendees', 'event_espresso');
            ?>
">
										<div class="complete_btn"></div>
									</a>
									
									<a href="admin.php?page=events&event_admin_reports=charts&event_id=<?php 
            echo $event_id;
            ?>
" title="<?php 
            _e('View Report', 'event_espresso');
            ?>
">
										<div class="reports_btn"></div>
									</a>


									<a class="thickbox" href="#TB_inline?height=300&width=400&inlineId=unique_id_info_<?php 
            echo $event_id;
            ?>
" title="<?php 
            _e('Get Short URL/Shortcode', 'event_espresso');
            ?>
">
										<div class="shortcode_btn"></div>
									</a>

									<a href="#" onclick="window.location='<?php 
            echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&amp;event_id=" . $event_id . "&amp;export=report&action=payment&amp;type=excel";
            ?>
'" title="<?php 
            _e('Export to Excel', 'event_espresso');
            ?>
">
										<div class="excel_exp_btn"></div>
									</a>

									<a href="#" onclick="window.location='<?php 
            echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&event_id=" . $event_id . "&export=report&action=payment&type=csv";
            ?>
'" title="<?php 
            _e('Export to CSV', 'event_espresso');
            ?>
">
										<div class="csv_exp_btn"></div>
									</a>

									<a href="admin.php?page=events&amp;event_admin_reports=event_newsletter&amp;event_id=<?php 
            echo $event_id;
            ?>
" title="<?php 
            _e('Email Attendees', 'event_espresso');
            ?>
">
										<div class="newsletter_btn"></div>
									</a>
									
								</div>

								<div id="unique_id_info_<?php 
            echo $event_id;
            ?>
" style="display:none">
						<?php 
            _e('<h2>Short URL/Shortcode</h2><p>This is the short URL to this event:</p><p><span  class="updated fade">' . espresso_reg_url($event_id) . '</span></p><p>This will show the registration form for this event just about anywhere. Copy and paste the following shortcode into any page or post.</p><p><span  class="updated fade">[SINGLEEVENT single_event_id="' . $event_identifier . '"]</span></p> <p class="red_text"> Do not use in place of the main events page that is set in the Organization Settings page.', 'event_espresso');
            ?>
								</div>
								
							</td>
						</tr>
						<?php 
            $content = ob_get_contents();
            ob_end_clean();
            echo $content;
        }
        //End foreach ($events as $event){
    }
    ?>

			</tbody>
		</table>
		<div style="clear:both; margin-bottom:30px;">
			<input type="checkbox" name="sAll" onclick="selectAll(this)" />
			<strong>
	<?php 
    _e('Check All', 'event_espresso');
    ?>
			</strong><?php 
    if (isset($_REQUEST['event_status']) && $_REQUEST['event_status'] == 'D') {
        ?>
				<input name="perm_delete_event" type="submit" class="button-secondary" id="perm_delete_event" value="<?php 
        _e('Permanently Delete Events(s)', 'event_espresso');
        ?>
" style="margin:10px 0 0 10px;" onclick="return confirmDelete();" />
			<?php 
    } else {
        ?>
				<input name="delete_event" type="submit" class="button-secondary" id="delete_event" value="<?php 
        _e('Delete Events(s)', 'event_espresso');
        ?>
" style="margin:10px 0 0 10px;" onclick="return confirmDelete();" />

				<a  style="margin-left:5px"class="button-secondary" href="admin.php?page=events&amp;action=csv_import"><?php 
        _e('Import Events', 'event_espresso');
        ?>
</a>
				<?php 
        if (function_exists('espresso_attendee_import') && $espresso_premium == true) {
            ?>
<a style="margin-left:5px" class="button-secondary" href="admin.php?page=espresso_attendee_import"><?php 
            _e('Import Attendees', 'event_espresso');
            ?>
</a><?php 
        }
        ?>

				<a style="margin-left:5px" class="button-secondary" href="#" onclick="window.location='<?php 
        echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&amp;export=report&action=payment&amp;type=excel&all_events=true";
        ?>
'" title="<?php 
        _e('Export to Excel', 'event_espresso');
        ?>
"><?php 
        _e('Export All Attendee Data', 'event_espresso');
        ?>
</a>
				<a class="button-secondary" href="#" onclick="window.location='<?php 
        echo get_bloginfo('wpurl') . "/wp-admin/admin.php?event_espresso&amp;export=report&action=event&amp;type=excel&all_events=true";
        ?>
'" title="<?php 
        _e('Export to Excel', 'event_espresso');
        ?>
"><?php 
        _e('Export All Event Data', 'event_espresso');
        ?>
</a>
				<a style="margin-left:5px" class="button-primary" href="admin.php?page=events&amp;action=add_new_event"><?php 
        _e('Add New Event', 'event_espresso');
        ?>
</a>
		<?php 
    }
    ?>
  </div>
	</form>
	<h4 style="clear:both"><?php 
    _e('Legend', 'event_espresso');
    ?>
</h4>
	<dl style="float:left; margin-left:10px; width:200px">
	<?php 
    echo defined('EVENT_ESPRESSO_RECURRENCE_MODULE_ACTIVE') ? '<dt><img src="' . EVENT_ESPRESSO_PLUGINFULLURL . 'images/arrow_rotate_clockwise.png" alt="Recurring Event" title="Recurring Event"  /> - ' . __('Recurring Event', 'event_espresso') . '</dt>' : '';
    ?>
		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/magnifier.png" width="16" height="16" alt="<?php 
    _e('View Event', 'event_espresso');
    ?>
" /> - <?php 
    _e('View Event', 'event_espresso');
    ?>
</dt>

		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/calendar_edit.png" width="16" height="16" alt="<?php 
    _e('Edit Event', 'event_espresso');
    ?>
" /> - <?php 
    _e('Edit Event', 'event_espresso');
    ?>
</dt>

		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/group.png" width="16" height="16" alt="<?php 
    _e('Event Attendees', 'event_espresso');
    ?>
" /> - <?php 
    _e('Event Attendees', 'event_espresso');
    ?>
</dt>
		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/chart_bar.png" width="16" height="16" alt="<?php 
    _e('Send Event Email', 'event_espresso');
    ?>
" /> - <?php 
    _e('View Report', 'event_espresso');
    ?>
</dt>


	</dl>

	<dl style="float:left; margin-left:10px;">
		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/tag.png" width="16" height="16" alt="<?php 
    _e('Short Code', 'event_espresso');
    ?>
" /> - <?php 
    _e('Short Code', 'event_espresso');
    ?>
</dt>
		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/excel_icon.png" width="16" height="16" alt="<?php 
    _e('Excel Spreadsheet', 'event_espresso');
    ?>
" /> - <?php 
    _e('Excel Export', 'event_espresso');
    ?>
</dt>

		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/csv_icon_sm.gif" width="16" height="16" alt="<?php 
    _e('CSV Spreadsheet', 'event_espresso');
    ?>
" /> - <?php 
    _e('CSV Export', 'event_espresso');
    ?>
</dt>

		<dt><img src="<?php 
    echo EVENT_ESPRESSO_PLUGINFULLURL;
    ?>
images/icons/email_go.png" width="16" height="16" alt="<?php 
    _e('View Report', 'event_espresso');
    ?>
" /> - <?php 
    _e('Event Newsletter', 'event_espresso');
    ?>
</dt>
	</dl>

	<script>
		jQuery(document).ready(function($) {
			// show the table data 
			var mytable = $('#table').dataTable( {
				"sDom": 'Clfrtip',
				"aoColumns": [
					{ "bSortable": false },
					null,
					null,
					null,
					null,
					null,
					null,
					null,
					null,
	<?php 
    echo function_exists('espresso_is_admin') && espresso_is_admin() == true ? 'null,' : '';
    ?>
					null,
					{ "bSortable": false }
				],
				"aoColumnDefs": [
					{ "bVisible": false, "aTargets": [ <?php 
    echo $org_options['use_venue_manager'] == 'Y' ? '' : '3,';
    ?>
 4 ] }
				],
				"oColVis": {
					"aiExclude": [ 0, 1, 2 ],
					"buttonText": "Filter: Show / Hide Columns",
					"bRestore": true
				},
				"bAutoWidth": false,
				"bStateSave": true,
				"sPaginationType": "full_numbers",
				"oLanguage": {	"sSearch": "<strong><?php 
    _e('Live Search Filter', 'event_espresso');
    ?>
:</strong>",
					"sZeroRecords": "<?php 
    _e('No Records Found!', 'event_espresso');
    ?>
" }

			});
		});
	</script>

	<div id="coupon_code_info" style="display:none">
		<h2><?php 
    _e('Coupon/Promo Code', 'event_espresso');
    ?>
</h2><p><?php 
    _e('This is used to apply discounts to events.', 'event_espresso');
    ?>
</p><p><?php 
    _e('A coupon or promo code could can be anything you want. For example: Say you have an event that costs', 'event_espresso');
    ?>
 <?php 
    echo $org_options['currency_symbol'];
    ?>
200. <?php 
    _e('If you supplied a promo like "PROMO50" and entered 50.00 into the "Discount w/Promo Code" field your event will be discounted', 'event_espresso');
    ?>
  <?php 
    echo $org_options['currency_symbol'];
    ?>
50.00, <?php 
    _e('Bringing the cost of the event to', 'event_espresso');
    ?>
 <?php 
    echo $org_options['currency_symbol'];
    ?>
150. </p>
			<p><?php 
    _e("Note: Promo Codes which are marked to 'apply to all events', although not explicitly enumerated, can also be used for this event, provided it allows promo codes.", "event_espresso");
    ?>
</p>
	</div>
	<div id="unique_id_info" style="display:none">
		<h2><?php 
    _e('Event Identifier', 'event_espresso');
    ?>
</h2><p><?php 
    _e('This should be a unique identifier for the event. Example: "Event1" (without quotes.)</p><p>The unique ID can also be used in individual pages using the', 'event_espresso');
    ?>
 [SINGLEEVENT single_event_id="<?php 
    _e('Unique Event ID', 'event_espresso');
    ?>
"] <?php 
    _e('shortcode', 'event_espresso');
    ?>
.</p>
	</div>
	<?php 
    echo event_espresso_custom_email_info();
}
Ejemplo n.º 8
0
function add_event_to_db($recurrence_arr = array())
{
    // echo "<pre>";
    //print_r($_POST);
    //echo "</pre>";
    global $wpdb, $org_options, $current_user, $espresso_premium;
    $wpdb->show_errors();
    static $recurrence_id;
    if (get_option('event_espresso_re_active') == 1) {
        require_once EVENT_ESPRESSO_RECURRENCE_FULL_PATH . "functions/re_functions.php";
        $recurrence_id = array_key_exists('recurrence_id', $recurrence_arr) ? $recurrence_arr['recurrence_id'] : Null;
        if ($_POST['recurrence'] == 'Y' && count($recurrence_arr) < 2) {
            if (is_null($recurrence_id)) {
                $recurrence_id = add_recurrence_master_record();
            }
            $re_params = array('start_date' => $_POST['recurrence_type'] == 'a' ? $_POST['recurrence_start_date'] : $_POST['recurrence_manual_dates'], 'event_end_date' => $_POST['recurrence_type'] == 'a' ? $_POST['recurrence_event_end_date'] : $_POST['recurrence_manual_end_dates'], 'end_date' => $_POST['recurrence_type'] == 'a' ? $_POST['recurrence_end_date'] : $_POST['end_date'], 'registration_start' => $_POST['recurrence_regis_start_date'], 'registration_end' => $_POST['recurrence_regis_end_date'], 'frequency' => $_POST['recurrence_frequency'], 'interval' => $_POST['recurrence_interval'], 'type' => $_POST['recurrence_type'], 'weekdays' => $_POST['recurrence_weekday'], 'repeat_by' => $_POST['recurrence_repeat_by'], 'recurrence_regis_date_increment' => $_POST['recurrence_regis_date_increment'], 'recurrence_manual_dates' => $_POST['recurrence_manual_dates'], 'recurrence_manual_end_dates' => $_POST['recurrence_manual_end_dates'], 'recurrence_visibility' => $_POST['recurrence_visibility'], 'recurrence_id' => $recurrence_id, 'adding_to_db' => 'Y');
            $recurrence_dates = $_POST['recurrence_type'] == 'm' ? find_recurrence_manual_dates($re_params) : find_recurrence_dates($re_params);
        }
    }
    //echo_f('re array', $recurrence_dates);
    if (defined('EVENT_ESPRESSO_RECURRENCE_MODULE_ACTIVE') && $_POST['recurrence'] == 'Y' && count($recurrence_arr) == 0) {
        //skip the first insert because we do not have the start dates
    } else {
        $event_mata = array();
        //will be used to hold event meta data
        //If the Espresso Facebook Events is installed, add the event to Facebook
        //$fb = new FacebookEvents();
        //echo $fb->espresso_createevent();
        //echo $_POST['event'];
        $event_name = $_REQUEST['event'];
        $event_code = uniqid($current_user->ID . '-');
        $event_identifier = $_REQUEST['event_identifier'] == '' ? $event_identifier = sanitize_title_with_dashes($event_name . '-' . $event_code) : ($event_identifier = sanitize_title_with_dashes($_REQUEST['event_identifier']) . $event_code);
        $event_desc = $_REQUEST['event_desc'];
        $display_desc = $_REQUEST['display_desc'];
        $display_reg_form = $_REQUEST['display_reg_form'];
        $address = esc_html($_REQUEST['address']);
        $address2 = esc_html($_REQUEST['address2']);
        $city = esc_html($_REQUEST['city']);
        $state = esc_html($_REQUEST['state']);
        $zip = esc_html($_REQUEST['zip']);
        $country = esc_html($_REQUEST['country']);
        $phone = esc_html($_REQUEST['phone']);
        $externalURL = esc_html($_REQUEST['externalURL']);
        $post_type = $_REQUEST['espresso_post_type'];
        //$event_location = $address . ' ' . $city . ', ' . $state . ' ' . $zip;
        $event_location = ($address != '' ? $address . ' ' : '') . ($address2 != '' ? '<br />' . $address2 : '') . ($city != '' ? '<br />' . $city : '') . ($state != '' ? ', ' . $state : '') . ($zip != '' ? '<br />' . $zip : '') . ($country != '' ? '<br />' . $country : '');
        $reg_limit = $_REQUEST['reg_limit'];
        $allow_multiple = $_REQUEST['allow_multiple'];
        $additional_limit = $_REQUEST['additional_limit'];
        $member_only = isset($_REQUEST['member_only']) ? $_REQUEST['member_only'] : '';
        $is_active = $_REQUEST['is_active'];
        $event_status = $_REQUEST['event_status'];
        //Get the first instance of the start and end times
        $start_time = $_REQUEST['start_time'][0];
        $end_time = $_REQUEST['end_time'][0];
        // Add registration times
        $registration_startT = event_date_display($_REQUEST['registration_startT'], 'H:i');
        $registration_endT = event_date_display($_REQUEST['registration_endT'], 'H:i');
        // Add Timezone
        $timezone_string = isset($_REQUEST['timezone_string']) ? $_REQUEST['timezone_string'] : '';
        //Early discounts
        $early_disc = $_REQUEST['early_disc'];
        $early_disc_date = $_REQUEST['early_disc_date'];
        $early_disc_percentage = $_REQUEST['early_disc_percentage'];
        $conf_mail = $_REQUEST['conf_mail'];
        $use_coupon_code = $_REQUEST['use_coupon_code'];
        $alt_email = $_REQUEST['alt_email'];
        $send_mail = $_REQUEST['send_mail'];
        $email_id = isset($_REQUEST['email_name']) ? $_REQUEST['email_name'] : '';
        //Venue Information
        $venue_title = $_REQUEST['venue_title'];
        $venue_url = $_REQUEST['venue_url'];
        $venue_phone = $_REQUEST['venue_phone'];
        $venue_image = $_REQUEST['venue_image'];
        //Virtual location
        $virtual_url = $_REQUEST['virtual_url'];
        $virtual_phone = $_REQUEST['virtual_phone'];
        $registration_start = array_key_exists('registration_start', $recurrence_arr) ? $recurrence_arr['registration_start'] : $_REQUEST['registration_start'];
        $registration_end = array_key_exists('registration_end', $recurrence_arr) ? $recurrence_arr['registration_end'] : $_REQUEST['registration_end'];
        //Check which start/end date to use.  Will be determined by recurrenig events addon, if installed.
        if (array_key_exists('recurrence_start_date', $recurrence_arr)) {
            //Recurring event
            $start_date = $recurrence_arr['recurrence_start_date'];
        } elseif ($_REQUEST['start_date'] == '' && $_REQUEST['recurrence_start_date'] != '') {
            //If they leave the Event Start Date empty, the First Event Date in the recurrence module is selected
            $start_date = $_REQUEST['recurrence_start_date'];
        } elseif (isset($_POST['recurrence']) && $_POST['recurrence'] == 'Y' && $_REQUEST['start_date'] == '') {
            $start_date = $_REQUEST['recurrence_manual_dates'][0];
        } else {
            $start_date = $_REQUEST['start_date'];
        }
        if (array_key_exists('recurrence_event_end_date', $recurrence_arr)) {
            //Recurring event
            $end_date = $recurrence_arr['recurrence_event_end_date'];
        } elseif ($_REQUEST['end_date'] == '' && $_REQUEST['recurrence_event_end_date'] != '') {
            //If they leave the Event Start Date empty, the First Event Date in the recurrence module is selected
            $end_date = $_REQUEST['recurrence_event_end_date'];
        } elseif (isset($_POST['recurrence']) && $_POST['recurrence'] == 'Y' && $_REQUEST['end_date'] == '') {
            $end_date = $_REQUEST['recurrence_manual_end_dates'][count($_REQUEST['recurrence_manual_end_dates']) - 1];
        } else {
            $end_date = $_REQUEST['end_date'];
        }
        //$start_date = array_key_exists('recurrence_start_date', $recurrence_arr)?$recurrence_arr['recurrence_start_date']:($_REQUEST['start_date']==''?$_REQUEST['recurrence_start_date']:$_REQUEST['start_date']);
        //$end_date = array_key_exists('recurrence_start_date', $recurrence_arr)?$recurrence_arr['recurrence_start_date']:($_REQUEST['end_date']==''?$_REQUEST['recurrence_start_date']:$_REQUEST['end_date']);
        if (array_key_exists('visible_on', $recurrence_arr)) {
            //Recurring event
            $visible_on = $recurrence_arr['visible_on'];
        } elseif (isset($_REQUEST['visible_on']) && $_REQUEST['visible_on'] != '') {
            $visible_on = $_REQUEST['visible_on'];
        } elseif (isset($_REQUEST['visible_on']) && $_REQUEST['visible_on'] == '' && count($recurrence_dates) > 0) {
            $visible_on = $recurrence_dates[$start_date]['visible_on'];
        } else {
            $visible_on = date("Y-m-d");
        }
        if ($reg_limit == '') {
            $reg_limit = 999;
        }
        $question_groups = empty($_REQUEST['question_groups']) ? '' : serialize($_REQUEST['question_groups']);
        $add_attendee_question_groups = empty($_REQUEST['add_attendee_question_groups']) ? '' : serialize($_REQUEST['add_attendee_question_groups']);
        $event_mata['venue_id'] = isset($_REQUEST['venue_id']) ? $_REQUEST['venue_id'][0] : '';
        $event_mata['additional_attendee_reg_info'] = $_REQUEST['additional_attendee_reg_info'];
        $event_mata['add_attendee_question_groups'] = $add_attendee_question_groups;
        $event_mata['date_submitted'] = date("Y-m-d H:i:s");
        $event_mata['default_payment_status'] = $_REQUEST['default_payment_status'];
        if ($_REQUEST['emeta'] != '') {
            foreach ($_REQUEST['emeta'] as $k => $v) {
                $event_mata[$v] = strlen(trim($_REQUEST['emetad'][$k])) > 0 ? $_REQUEST['emetad'][$k] : '';
            }
        }
        //echo strlen(trim($_REQUEST['emetad'][$k]));
        //print_r($_REQUEST['emeta'] );
        $event_mata = serialize($event_mata);
        ############ Added by wp-developers ######################
        $require_pre_approval = 0;
        if (isset($_REQUEST['require_pre_approval'])) {
            $require_pre_approval = $_REQUEST['require_pre_approval'];
        }
        ################# END #################
        //When adding colums to the following arrays, be sure both arrays have equal values.
        $sql = array('event_code' => $event_code, 'event_name' => $event_name, 'event_desc' => $event_desc, 'display_desc' => $display_desc, 'display_reg_form' => $display_reg_form, 'event_identifier' => $event_identifier, 'address' => $address, 'address2' => $address2, 'city' => $city, 'state' => $state, 'zip' => $zip, 'country' => $country, 'phone' => $phone, 'virtual_url' => $virtual_url, 'virtual_phone' => $virtual_phone, 'venue_title' => $venue_title, 'venue_url' => $venue_url, 'venue_phone' => $venue_phone, 'venue_image' => $venue_image, 'registration_start' => $registration_start, 'registration_end' => $registration_end, 'start_date' => $start_date, 'end_date' => $end_date, 'allow_multiple' => $allow_multiple, 'send_mail' => $send_mail, 'is_active' => $is_active, 'event_status' => $event_status, 'conf_mail' => $conf_mail, 'use_coupon_code' => $use_coupon_code, 'member_only' => $member_only, 'externalURL' => $externalURL, 'early_disc' => $early_disc, 'early_disc_date' => $early_disc_date, 'early_disc_percentage' => $early_disc_percentage, 'alt_email' => $alt_email, 'question_groups' => $question_groups, 'registration_startT' => $registration_startT, 'registration_endT' => $registration_endT, 'reg_limit' => $reg_limit, 'additional_limit' => $additional_limit, 'recurrence_id' => $recurrence_id, 'email_id' => $email_id, 'wp_user' => $current_user->ID, 'event_meta' => $event_mata, 'require_pre_approval' => $require_pre_approval, 'timezone_string' => $timezone_string, 'submitted' => date('Y-m-d H:i:s', time()));
        $sql_data = array('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%s', '%s', '%s', '%s');
        /* echo 'Debug: <br />';
           print_r($sql);
           echo '<br />';
           print 'Number of vars: ' . count ($sql);
           echo '<br />';
           print 'Number of cols: ' . count($sql_data); */
        //Add groupon reference if installed
        if (function_exists('event_espresso_add_event_to_db_groupon')) {
            $sql = event_espresso_add_event_to_db_groupon($sql, $_REQUEST['use_groupon_code']);
            //print count ($sql);
            $sql_data = array_merge((array) $sql_data, (array) '%s');
            //print count($sql_data);
            if (!$wpdb->insert(EVENTS_DETAIL_TABLE, $sql, $sql_data)) {
                $error = true;
            }
        } else {
            if (!$wpdb->insert(EVENTS_DETAIL_TABLE, $sql, $sql_data)) {
                $error = true;
            }
        }
        $last_event_id = $wpdb->insert_id;
        ############# MailChimp Integration ##############
        if (get_option('event_mailchimp_active') == 'true' && $espresso_premium == true) {
            MailChimpController::add_event_list_rel($last_event_id);
        }
        if (function_exists('espresso_fb_createevent') == 'true' && $espresso_premium == true) {
            espresso_fb_createevent($last_event_id);
        }
        /*
         * Added for seating chart addon
         */
        if (isset($_REQUEST['seating_chart_id'])) {
            $cls_seating_chart = new seating_chart();
            $cls_seating_chart->associate_event_seating_chart($_REQUEST['seating_chart_id'], $last_event_id);
        }
        /*
         * End
         */
        //Add event to a category
        if (isset($_REQUEST['event_category']) && $_REQUEST['event_category'] != '') {
            foreach ($_REQUEST['event_category'] as $k => $v) {
                if ($v != '') {
                    $sql_cat = "INSERT INTO " . EVENTS_CATEGORY_REL_TABLE . " (event_id, cat_id) VALUES ('" . $last_event_id . "', '" . $v . "')";
                    //echo "$sql3 <br>";
                    if (!$wpdb->query($sql_cat)) {
                        $error = true;
                    }
                }
            }
        }
        if (!empty($_REQUEST['event_person'])) {
            foreach ($_REQUEST['event_person'] as $k => $v) {
                if ($v != '') {
                    $sql_ppl = "INSERT INTO " . EVENTS_PERSONNEL_REL_TABLE . " (event_id, person_id) VALUES ('" . $last_event_id . "', '" . $v . "')";
                    //echo "$sql_ppl <br>";
                    $wpdb->query($sql_ppl);
                }
            }
        }
        if (!empty($_REQUEST['venue_id'])) {
            foreach ($_REQUEST['venue_id'] as $k => $v) {
                if ($v != '' && $v != 0) {
                    $sql_venues = "INSERT INTO " . EVENTS_VENUE_REL_TABLE . " (event_id, venue_id) VALUES ('" . $last_event_id . "', '" . $v . "')";
                    //echo "$sql_venues <br>";
                    $wpdb->query($sql_venues);
                }
            }
        }
        if (!empty($_REQUEST['event_discount'])) {
            foreach ($_REQUEST['event_discount'] as $k => $v) {
                if ($v != '') {
                    $sql_cat = "INSERT INTO " . EVENTS_DISCOUNT_REL_TABLE . " (event_id, discount_id) VALUES ('" . $last_event_id . "', '" . $v . "')";
                    //echo "$sql3 <br>";
                    if (!$wpdb->query($sql_cat)) {
                        $error = true;
                    }
                }
            }
        }
        if (!empty($_REQUEST['start_time'])) {
            foreach ($_REQUEST['start_time'] as $k => $v) {
                if ($v != '') {
                    $time_qty = $_REQUEST['time_qty'][$k] == '' ? '0' : "'" . $_REQUEST['time_qty'][$k] . "'";
                    $sql3 = "INSERT INTO " . EVENTS_START_END_TABLE . " (event_id, start_time, end_time, reg_limit) VALUES ('" . $last_event_id . "', '" . event_date_display($v, 'H:i') . "', '" . event_date_display($_REQUEST['end_time'][$k], 'H:i') . "', " . $time_qty . ")";
                    //echo "$sql3 <br>";
                    if (!$wpdb->query($sql3)) {
                        $error = true;
                    }
                }
            }
        }
        if (!empty($_REQUEST['event_cost'])) {
            foreach ($_REQUEST['event_cost'] as $k => $v) {
                if ($v != '') {
                    $price_type = $_REQUEST['price_type'][$k] != '' ? $_REQUEST['price_type'][$k] : __('General Admission', 'event_espresso');
                    $member_price_type = !empty($_REQUEST['member_price_type'][$k]) ? $_REQUEST['member_price_type'][$k] : __('Members Admission', 'event_espresso');
                    $member_price = !empty($_REQUEST['member_price'][$k]) ? $_REQUEST['member_price'][$k] : $v;
                    $sql_price = "INSERT INTO " . EVENTS_PRICES_TABLE . " (event_id, event_cost, surcharge, surcharge_type, price_type, member_price, member_price_type) VALUES ('" . $last_event_id . "', '" . $v . "', '" . $_REQUEST['surcharge'][$k] . "', '" . $_REQUEST['surcharge_type'][$k] . "', '" . $price_type . "', '" . $member_price . "', '" . $member_price_type . "')";
                    //echo "$sql3 <br>";
                    if (!$wpdb->query($sql_price)) {
                        $error = true;
                    }
                }
            }
        } elseif ($_REQUEST['event_cost'][0] == 0) {
            $sql_price = "INSERT INTO " . EVENTS_PRICES_TABLE . " (event_id, event_cost, surcharge, price_type, member_price, member_price_type) VALUES ('" . $last_event_id . "', '0.00', '0.00', '" . __('Free', 'event_espresso') . "', '0.00', '" . __('Free', 'event_espresso') . "')";
            if (!$wpdb->query($sql_price)) {
                $error = true;
            }
        }
        // Create Event Post Code Here
        if ($_REQUEST['create_post'] == 'Y') {
            $post_type = $_REQUEST['espresso_post_type'];
            if ($post_type == 'post') {
                if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php") || file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . "templates/event_post.php")) {
                    // Load message from template into message post variable
                    ob_start();
                    if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php")) {
                        require_once EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php";
                    } else {
                        require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/event_post.php";
                    }
                    $post_content = ob_get_contents();
                    ob_end_clean();
                } else {
                    _e('There was error finding a post template. Please verify your post templates are available.', 'event_espresso');
                }
            } elseif ($post_type == 'espresso_event') {
                ob_start();
                echo $event_desc;
                $post_content = ob_get_contents();
                ob_end_clean();
            }
            $my_post = array();
            $my_post['post_title'] = esc_html($_REQUEST['event']);
            $my_post['post_content'] = $post_content;
            $my_post['post_status'] = 'publish';
            $my_post['post_author'] = $_REQUEST['user'];
            $my_post['post_category'] = $_REQUEST['post_category'];
            $my_post['tags_input'] = $_REQUEST['post_tags'];
            $my_post['post_type'] = $post_type;
            //print_r($my_post);
            // Insert the post into the database
            $post_id = wp_insert_post($my_post);
            // Store the POST ID so it can be displayed on the edit page
            $sql = array('post_id' => $post_id, 'post_type' => $post_type);
            add_post_meta($post_id, 'event_id', $last_event_id);
            add_post_meta($post_id, 'event_identifier', $event_identifier);
            add_post_meta($post_id, 'event_start_date', $_REQUEST['start_date']);
            add_post_meta($post_id, 'event_end_date', $_REQUEST['end_date']);
            add_post_meta($post_id, 'event_location', $event_location);
            add_post_meta($post_id, 'virtual_url', $virtual_url);
            add_post_meta($post_id, 'virtual_phone', $virtual_phone);
            add_post_meta($post_id, 'event_address', $address);
            add_post_meta($post_id, 'event_address2', $address2);
            add_post_meta($post_id, 'event_city', $city);
            add_post_meta($post_id, 'event_state', $state);
            add_post_meta($post_id, 'event_country', $country);
            add_post_meta($post_id, 'event_phone', $phone);
            add_post_meta($post_id, 'venue_title', $venue_title);
            add_post_meta($post_id, 'venue_url', $venue_url);
            add_post_meta($post_id, 'venue_phone', $venue_phone);
            add_post_meta($post_id, 'venue_image', $venue_image);
            add_post_meta($post_id, 'event_externalURL', $externalURL);
            add_post_meta($post_id, 'event_reg_limit', $reg_limit);
            add_post_meta($post_id, 'event_start_time', time_to_24hr($start_time));
            add_post_meta($post_id, 'event_end_time', time_to_24hr($end_time));
            add_post_meta($post_id, 'event_registration_start', $registration_start);
            add_post_meta($post_id, 'event_registration_end', $registration_end);
            add_post_meta($post_id, 'event_registration_startT', $registration_startT);
            add_post_meta($post_id, 'event_registration_endT', $registration_endT);
            //add_post_meta( $post_id, 'timezone_string', $_REQUEST['timezone_string'] );
            $sql_data = array('%d', '%s');
            $update_id = array('id' => $last_event_id);
            $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
        }
        if (empty($error)) {
            ?>
            <div id="message" class="updated fade"><p><strong><?php 
            _e('The event', 'event_espresso');
            ?>
                        <a href="<?php 
            echo espresso_reg_url($last_event_id);
            ?>
" target="_blank"><?php 
            echo stripslashes_deep($_REQUEST['event']);
            ?>
</a>

            <?php 
            _e('has been added for ', 'event_espresso');
            echo date("m/d/Y", strtotime($start_date));
            ?>
 <a href="admin.php?page=events&action=edit&event_id=<?php 
            echo $last_event_id;
            ?>
"><?php 
            _e('Edit this event?', 'event_espresso');
            ?>
</a></strong></p></div>
        <?php 
        } else {
            ?>
            <div id="message" class="error"><p><strong><?php 
            _e('There was an error in your submission, please try again. The event was not saved!', 'event_espresso');
            print $wpdb->print_error();
            ?>
.</strong></p></div>
            <?php 
        }
    }
    /*
     * With the recursion of this function, additional recurring events will be added
     */
    if (isset($recurrence_dates) && count($recurrence_dates) > 0) {
        foreach ($recurrence_dates as $k => $v) {
            add_event_to_db(array('recurrence_id' => $recurrence_id, 'recurrence_start_date' => $v['start_date'], 'recurrence_event_end_date' => $v['event_end_date'], 'registration_start' => $v['registration_start'], 'registration_end' => $v['registration_end'], 'visible_on' => $v['visible_on']));
        }
    }
    /*
     * End recursion, as part of recurring events.
     */
    return $last_event_id;
}
        $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_name' => '<p class="section-title">' . stripslashes_deep($event_name) . '</span>', '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' => '<span class="section-title">' . $venue_title . '</span>', 'venue_address' => $venue_address, 'venue_address2' => $venue_address2, 'venue_city' => $venue_city, 'venue_state' => $venue_state, 'venue_country' => $venue_country, 'is_active' => $data->event->is_active, 'event_status' => $data->event->event_status, 'start_time' => $data->event->start_time, 'start_time' => empty($data->event->start_time) ? '' : $data->event->start_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, 'event_address' => empty($data->event->event_address) ? '' : $data->event->event_address, 'start_date' => '<span class="section-title">' . event_espresso_no_format_date($start_date, get_option('date_format')) . '</span>', 'end_date' => '<span class="section-title">' . event_date_display($end_date, get_option('date_format')) . '</span>', 'google_map_link' => $google_map_link);
    $registration_url = $externalURL != '' ? $externalURL : espresso_reg_url($event_id);
    //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);
}
/**
 * this is the original database stuff
 */
/*
	$sql  = "SELECT * FROM " .EVENTS_DETAIL_TABLE. " WHERE event_status != 'D' AND id = " . $event_id;

	if ($wpdb->get_results($sql)){
			$events = $wpdb->get_results($sql);
			foreach ($events as $event){ //These are the variables that can be used throughout the regsitration page
					$event_id = $event->id;
Ejemplo n.º 10
0
function ee_create_autocomplete_search()
{
    global $wpdb, $espresso_manager, $current_user, $org_options;
    $array = array('ee_search' => 'true');
    $url = add_query_arg($array, get_permalink($org_options['event_page_id']));
    ob_start();
    ?>
	<div id="espresso-search-form-dv" class="ui-widget">
		<form name="form" method="post" action="<?php 
    echo $url;
    ?>
">
			<input id="ee_autocomplete" name="ee_name" class="ui-autocomplete-input ui-corner-all" />
			<input id="ee_search_submit" name="ee_search_submit" class="ui-button ui-button-big ui-priority-primary ui-state-default ui-state-hover ui-state-focus ui-corner-all" type="submit" value="Search" />
			<input id="event_id" name="event_id" type="hidden">
		</form>
	</div>
<?php 
    $ee_autocomplete_params = array();
    $SQL = "SELECT e.*";
    if (isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y') {
        $SQL .= ", v.city venue_city, v.state venue_state, v.name venue_name, v.address venue_address, v.city venue_city, v.state venue_state, v.zip venue_zip, v.country venue_country, v.meta venue_meta ";
    }
    $SQL .= " FROM " . EVENTS_DETAIL_TABLE . " e ";
    if (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 ";
    }
    $SQL .= " WHERE e.is_active = 'Y' ";
    $SQL .= " AND e.event_status != 'D' ";
    //echo '<p>$sql = '.$sql.'</p>';
    $events = $wpdb->get_results($SQL);
    $num_rows = $wpdb->num_rows;
    if ($num_rows > 0) {
        foreach ($events as $event) {
            $venue_city = !empty($event->venue_city) ? stripslashes_deep($event->venue_city) : '';
            $venue_state = !empty($event->venue_state) ? (!empty($event->venue_city) ? ', ' : '') . stripslashes_deep($event->venue_state) : '';
            $venue_name = !empty($event->venue_name) ? ' @' . stripslashes_deep($event->venue_name) . ' - ' . $venue_city . $venue_state . '' : '';
            //An Array of Objects with label and value properties:
            $ee_autocomplete_params[] = array('url' => espresso_reg_url($event->id), 'value' => stripslashes_deep($event->event_name) . $venue_name, 'id' => $event->id);
            //echo '{ url:"'.espresso_reg_url($event->id).'", value: "'.stripslashes_deep($event->event_name) . $venue_name .'", id: "'.$event->id.'" },';
        }
    }
    wp_register_script('espresso_autocomplete', EVENT_ESPRESSO_PLUGINFULLURL . "scripts/espresso_autocomplete.js", array('jquery-ui-autocomplete'), '1.0.0', TRUE);
    wp_enqueue_script('espresso_autocomplete');
    wp_localize_script('espresso_autocomplete', 'ee_autocomplete_params', $ee_autocomplete_params);
    //Load scripts
    add_action('wp_footer', 'ee_load_jquery_autocomplete_scripts');
    $buffer = ob_get_contents();
    ob_end_clean();
    return $buffer;
}
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>';
}
Ejemplo n.º 12
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();
 }
Ejemplo n.º 13
0
    /**
     * 	get_calendar_events
     *
     *  @access 	public
     *  @return 	void
     */
    public function get_calendar_events()
    {
        //	$this->timer->start();
        global $wpdb, $org_options;
        remove_shortcode('LISTATTENDEES');
        // get calendar options
        $this->_calendar_options = $this->_get_calendar_options();
        $today = date('Y-m-d');
        $month = date('m');
        $year = date('Y');
        $start_date = isset($_REQUEST['start_date']) ? date('Y-m-d', absint($_REQUEST['start_date'])) : date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
        $end_date = isset($_REQUEST['end_date']) ? date('Y-m-d', absint($_REQUEST['end_date'])) : date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
        $show_expired = isset($_REQUEST['show_expired']) ? sanitize_key($_REQUEST['show_expired']) : $this->_show_expired;
        //		echo '<h4>$show_expired : ' . $show_expired . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
        // set boolean for categories
        $use_categories = isset($this->_calendar_options['disable_categories']) && $this->_calendar_options['disable_categories'] == FALSE ? TRUE : FALSE;
        $event_category_id = isset($_REQUEST['event_category_id']) && !empty($_REQUEST['event_category_id']) ? sanitize_key($_REQUEST['event_category_id']) : $this->_event_category_id;
        //Get venue id
        $event_venue_id = isset($_REQUEST['event_venue_id']) && !empty($_REQUEST['event_venue_id']) ? sanitize_key($_REQUEST['event_venue_id']) : $this->_event_venue_id;
        //Build the SQL to run
        $SQL = "SELECT e.*, ese.start_time, ese.end_time ";
        //Get the categories
        $SQL .= $event_category_id ? ", c.category_meta, c.category_identifier, c.category_name, c.category_desc, c.display_desc " : '';
        //Get the venues
        $SQL .= $event_venue_id ? ", v.meta venue_meta, v.id venue_id, v.name venue_name, v.address venue_address, v.city venue_city, v.state venue_state " : '';
        $SQL .= "FROM " . EVENTS_DETAIL_TABLE . " e ";
        $SQL .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id= e.id ";
        //Get the categories
        $SQL .= $event_category_id ? "JOIN " . EVENTS_CATEGORY_REL_TABLE . " r ON r.event_id = e.id " : '';
        $SQL .= $event_category_id ? "JOIN " . EVENTS_CATEGORY_TABLE . " c ON c.id = r.cat_id " : '';
        //Get the venues
        $SQL .= $event_venue_id ? "JOIN " . EVENTS_VENUE_REL_TABLE . " vr ON vr.event_id = e.id " : '';
        $SQL .= $event_venue_id ? "JOIN " . EVENTS_VENUE_TABLE . " v ON v.id = vr.venue_id " : '';
        $SQL .= "WHERE e.is_active != 'N' ";
        $SQL .= " AND e.event_status NOT IN ( 'D', 'S', 'P', 'X', 'R' ) ";
        //Deleted, Secondary/Waitlist, Pending, X?,  Draft
        $SQL .= $event_category_id ? " AND c.category_identifier = '{$event_category_id}' " : '';
        $SQL .= $event_venue_id ? " AND v.id = '{$event_venue_id}' " : '';
        //		$SQL .= " AND (( e.start_date >= %s AND e.start_date <= %s ) OR e.event_status != 'O' ) ";
        $SQL .= " AND ( e.end_date >= %s AND e.start_date <= %s ) ";
        if ($show_expired == "false") {
            $SQL .= apply_filters('filter_hook_espresso_calendar_sef_and_start_end_dates', " AND ( e.start_date >= '{$today}' AND e.registration_end >= '{$today}' ) ");
        }
        $SQL .= " GROUP BY e.id ORDER BY e.start_date ASC ";
        // . $throttle;
        // grab event data with event IDs as the array keys
        $events_data = $wpdb->get_results($wpdb->prepare($SQL, $start_date, $end_date), OBJECT_K);
        //		$this->timer->stop();
        //		echo $this->timer->get_elapse( __LINE__ );
        //		$this->timer->start();
        //		echo '<h4>' . $wpdb->last_query . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
        //		echo '<h3>$events_data</h3><pre style="height:auto;border:2px solid lightblue;">' . print_r( $events_data, TRUE ) . '</pre><br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>';
        $event_categories = array();
        //Do we need to get Category data ?
        if ($use_categories) {
            // grab event_ids from query results above to use in category query
            $EVT_IDs = array_keys($events_data);
            $SQL = "SELECT event_id, c.category_meta, c.category_identifier, c.category_name, c.category_desc, c.display_desc";
            $SQL .= " FROM " . EVENTS_CATEGORY_REL_TABLE . ' r ';
            $SQL .= " LEFT JOIN " . EVENTS_CATEGORY_TABLE . " c ON c.id = r.cat_id ";
            $SQL .= " WHERE event_id IN ( '" . implode("', '", $EVT_IDs) . "' )";
            $categories = $wpdb->get_results($SQL);
            //			echo '<h4>' . $wpdb->last_query . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
            foreach ($categories as $category) {
                $event_categories[$category->event_id][] = $category;
            }
        }
        //		echo '<h3>$event_categories</h3><pre style="height:auto;border:2px solid lightblue;">' . print_r( $event_categories, TRUE ) . '</pre><br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>';
        $enable_cat_classes = isset($this->_calendar_options['enable_cat_classes']) && $this->_calendar_options['enable_cat_classes'] ? TRUE : FALSE;
        $show_attendee_limit = isset($this->_calendar_options['show_attendee_limit']) && $this->_calendar_options['show_attendee_limit'] ? TRUE : FALSE;
        $show_time = isset($this->_calendar_options['show_time']) && $this->_calendar_options['show_time'] ? TRUE : FALSE;
        $show_tooltips = isset($this->_calendar_options['show_tooltips']) && $this->_calendar_options['show_tooltips'] ? TRUE : FALSE;
        if ($show_tooltips) {
            $tooltip_my = isset($this->_calendar_options['tooltips_pos_my_1']) && !empty($this->_calendar_options['tooltips_pos_my_1']) ? $this->_calendar_options['tooltips_pos_my_1'] : 'bottom';
            $tooltip_my .= isset($this->_calendar_options['tooltips_pos_my_2']) && !empty($this->_calendar_options['tooltips_pos_my_2']) ? ' ' . $this->_calendar_options['tooltips_pos_my_2'] : ' center';
            $tooltip_at = isset($this->_calendar_options['tooltips_pos_at_1']) && !empty($this->_calendar_options['tooltips_pos_at_1']) ? $this->_calendar_options['tooltips_pos_at_1'] : 'top';
            $tooltip_at .= isset($this->_calendar_options['tooltips_pos_at_2']) && !empty($this->_calendar_options['tooltips_pos_at_2']) ? ' ' . $this->_calendar_options['tooltips_pos_at_2'] : ' center';
            $tooltip_style = isset($this->_calendar_options['tooltip_style']) && $this->_calendar_options['tooltip_style'] ? $this->_calendar_options['tooltip_style'] : 'qtip-light';
            $tooltip_word_count = isset($this->_calendar_options['tooltip_word_count']) ? $this->_calendar_options['tooltip_word_count'] : 50;
        }
        $enable_calendar_thumbs = isset($this->_calendar_options['enable_calendar_thumbs']) && $this->_calendar_options['enable_calendar_thumbs'] ? TRUE : FALSE;
        $wp_thumbnail_crop = get_option('thumbnail_crop');
        //Is WP thumbnail cropping active?
        if ($enable_calendar_thumbs) {
            $thumbnail_size_w = get_option('thumbnail_size_w');
            $thumbnail_size_h = get_option('thumbnail_size_h');
            $upload_dir = wp_upload_dir();
        }
        do_action('action_hook_espresso_calendar_do_stuff', $show_expired);
        //		$this->timer->stop();
        //		echo $this->timer->get_elapse( __LINE__ );
        $events = array();
        $cntr = 0;
        foreach ($events_data as $event) {
            //		$this->timer->start();
            //Reset category colors
            $events[$cntr]['color'] = '';
            $events[$cntr]['textColor'] = '';
            global $this_event_id;
            $this_event_id = $event->id;
            //Get details about the category of the event
            if ($use_categories) {
                // extract info from separate array of category data ?
                if (isset($event_categories[$event->id])) {
                    // get first element of array without modifying original array
                    $primary_cat = array_values($event_categories[$event->id]);
                    $primary_cat = array_shift($primary_cat);
                    $category_data['category_meta'] = unserialize($primary_cat->category_meta);
                } else {
                    $category_data['category_meta'] = array();
                }
                //Assign colors to events by category
                if ($enable_cat_classes && isset($category_data['category_meta']['use_pickers']) && $category_data['category_meta']['use_pickers'] == 'Y') {
                    $events[$cntr]['color'] = $category_data['category_meta']['event_background'];
                    $events[$cntr]['textColor'] = $category_data['category_meta']['event_text_color'];
                }
            }
            //Gets the URL of the event and links the event to the registration form.
            $this->_calendar_options['espresso_page_post'] = isset($this->_calendar_options['espresso_page_post']) ? $this->_calendar_options['espresso_page_post'] : 'R';
            $registration_url = $this->_calendar_options['espresso_page_post'] == 'P' ? get_permalink($event->post_id) : add_query_arg('ee', $event->id, get_permalink($org_options['event_page_id']));
            $events[$cntr]['url'] = $event->externalURL != '' ? htmlspecialchars_decode($event->externalURL) : $registration_url;
            //Id of the event
            $events[$cntr]['id'] = $event->id;
            //Get the title of the event
            $events[$cntr]['title'] = htmlspecialchars_decode(stripslashes($event->event_name), ENT_QUOTES);
            //Get the start and end times for each event
            //important! time must be in iso8601 format 2010-05-10T08:30!!
            $events[$cntr]['start'] = date("c", strtotime($event->start_date . ' ' . event_date_display($event->start_time, get_option('time_format'))));
            $events[$cntr]['end'] = date("c", strtotime($event->end_date . ' ' . event_date_display($event->end_time, get_option('time_format'))));
            $events[$cntr]['reg_start'] = date("c", strtotime($event->registration_start . ' ' . event_date_display($event->registration_startT, get_option('time_format'))));
            $events[$cntr]['reg_end'] = date("c", strtotime($event->registration_end . ' ' . event_date_display($event->registration_endT, get_option('time_format'))));
            $start = strtotime($event->start_date . ' ' . $event->start_time);
            $end = strtotime($event->end_date . ' ' . $event->end_time);
            $events[$cntr]['event_days'] = max(ceil(($end - $start) / (60 * 60 * 24)), 1);
            $expired = ($events[$cntr]['end'] < date('c') || $events[$cntr]['reg_end'] < date('c')) && $event->event_status != 'O' ? TRUE : FALSE;
            if ($expired) {
                $events[$cntr]['className'] = 'expired';
            } else {
                $events[$cntr]['className'] = '';
            }
            //Make sure registration is open
            $not_open = $events[$cntr]['reg_start'] > date('c') ? TRUE : FALSE;
            if ($not_open) {
                $events[$cntr]['className'] = 'not-open';
            }
            //			$this->timer->stop();
            //			echo $this->timer->get_elapse( __LINE__ );
            //			$this->timer->start();
            $startTime = !empty($event->start_time) ? '<span class="event-start-time">' . event_date_display($event->start_time, $this->_calendar_options['time_format']) . '</span>' : FALSE;
            $endTime = !empty($event->end_time) ? '<span class="event-end-time">' . event_date_display($event->end_time, $this->_calendar_options['time_format']) . '</span>' : FALSE;
            if ($show_time && $startTime) {
                $events[$cntr]['event_time'] = '<span class="time-display-block">' . $startTime;
                $events[$cntr]['event_time'] .= $endTime ? ' - ' . $endTime : '';
                $events[$cntr]['event_time'] .= '</span>';
            } else {
                $events[$cntr]['event_time'] = FALSE;
            }
            $events[$cntr]['event_time_no_tags'] = wp_strip_all_tags($events[$cntr]['event_time']);
            $event_meta = unserialize($event->event_meta);
            // Add thumb to eventArray
            if ($enable_calendar_thumbs && isset($event_meta['event_thumbnail_url']) && !empty($event_meta['event_thumbnail_url'])) {
                // get pathinfo
                $pathinfo = pathinfo($event_meta['event_thumbnail_url']);
                // get dirname
                $dirname = $pathinfo['dirname'] . '/';
                // now get filename without path or extension
                $filename = $pathinfo['filename'];
                // and extension
                $ext = $pathinfo['extension'];
                // generate thumbnail size string ie: -150x150
                $thumbnail_size = '-' . $thumbnail_size_w . 'x' . $thumbnail_size_h;
                // check that thumbnail dimesions are not already included in filename
                $thumbnail_size = strpos($filename, $thumbnail_size) === FALSE && $wp_thumbnail_crop == FALSE ? $thumbnail_size : '';
                $path_to_thumbnail = $dirname . $filename . '.' . $ext;
                $events[$cntr]['thumbnail_size_w'] = $thumbnail_size_w;
                $events[$cntr]['thumbnail_size_h'] = $thumbnail_size_h;
                // check if file exists
                if ($pathinfo['dirname'] == $upload_dir['url']) {
                    // since the above is true we know the file is in the uploads so we can use file_exists() to verify it
                    if (!file_exists($upload_dir['path'] . DIRECTORY_SEPARATOR . $filename . $thumbnail_size . '.' . $ext)) {
                        // hmmm...  the scaled thumbnail doesn't exist, so better check that the original is still there, or set path to FALSE
                        $path_to_thumbnail = file_exists($upload_dir['path'] . DIRECTORY_SEPARATOR . $filename . '.' . $ext) ? $event_meta['event_thumbnail_url'] : FALSE;
                    }
                }
                //				echo '<h4>event_thumbnail_url : ' . $event_meta['event_thumbnail_url'] . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
                //				echo '<h4>$thumbnail_size : ' . $thumbnail_size . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
                //				echo '<h4>$path_to_thumbnail : ' . $path_to_thumbnail . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>';
                if ($path_to_thumbnail) {
                    $events[$cntr]['event_img_thumb'] = '
					<span class="thumb-wrap">
						<img id="ee-event-thumb-' . $event->id . '" class="ee-event-thumb" src="' . $path_to_thumbnail . '" alt="image of ' . $events[$cntr]['title'] . '" />
					</span>';
                    $events[$cntr]['className'] .= ' event-has-thumb';
                }
            }
            //Custom fields:
            //These can be used to perform special functions in your display.
            //This decalares the category ID as the CSS class name
            $events[$cntr]['eventType'] = '';
            if ($use_categories) {
                if ($enable_cat_classes) {
                    if (isset($event_categories[$event->id])) {
                        foreach ($event_categories[$event->id] as $cat) {
                            //This is the css class name
                            $events[$cntr]['className'] .= ' ' . $cat->category_identifier;
                        }
                        // set event type to the category id
                        $events[$cntr]['eventType'] = isset($primary_cat->category_name) && !empty($primary_cat->category_name) ? $primary_cat->category_name : '';
                    } else {
                        //This is the css class name
                        $events[$cntr]['className'] .= isset($event->category_identifier) ? ' ' . $event->category_identifier : '';
                        // set event type to the category id
                        $events[$cntr]['eventType'] .= isset($event->category_name) ? ' ' . $event->category_name : '';
                    }
                }
            }
            //			$this->timer->stop();
            //			echo $this->timer->get_elapse( __LINE__ );
            //			$this->timer->start();
            if ($show_tooltips) {
                // gets the description of the event. This can be used for hover effects such as jQuery Tooltips or QTip
                $event_desc = do_shortcode($event->event_desc);
                $events[$cntr]['description'] = wpautop(stripslashes($event_desc));
                // use short descriptions
                $event_desc_short = explode('<!--more-->', $events[$cntr]['description']);
                $event_desc_short = reset($event_desc_short);
                $events[$cntr]['description'] = $event_desc_short;
                // tooltip wrapper
                $events[$cntr]['tooltip'] = '<div class="ui-tooltip-content qtip_info">';
                // show time ?
                $events[$cntr]['tooltip'] .= $show_time && $startTime ? '<p class="time_cal_qtip">' . __('Event Time: ', 'event_espresso') . $startTime . ' - ' . $endTime . '</p>' : '';
                // check attendee reg limit
                $num_completed = 0;
                $a_sql = "SELECT SUM(quantity) quantity FROM " . EVENTS_ATTENDEE_TABLE . " WHERE event_id=%d AND (payment_status='Completed' OR payment_status='Pending' OR payment_status='Refund') ";
                $wpdb->get_results($wpdb->prepare($a_sql, $event->id), ARRAY_A);
                if ($wpdb->num_rows > 0 && $wpdb->last_result[0]->quantity != NULL) {
                    $num_completed = $wpdb->last_result[0]->quantity;
                }
                $reg_limit = $event->reg_limit;
                $allow_overflow = $event->allow_overflow;
                // add attendee limit if set
                if ($show_attendee_limit) {
                    $attendee_limit = $reg_limit >= 999999 ? __('Available Spaces: unlimited', 'event_espresso') : __('Registrations / Spaces: ', 'event_espresso') . $num_completed . ' / ' . $reg_limit;
                    $events[$cntr]['tooltip'] .= ' <p class="attendee_limit_qtip">' . $attendee_limit . '</p>';
                }
                //add link
                $regButtonText = $event->display_reg_form == 'Y' ? __('Register Now', 'event_espresso') : __('View Details', 'event_espresso');
                // reg open
                if (!$expired && $not_open) {
                    $events[$cntr]['tooltip'] .= '<div class="sold-out-dv">' . __('Registration Not Open', 'event_espresso') . '</div>';
                } else {
                    if ($num_completed < $reg_limit && !$expired) {
                        $events[$cntr]['tooltip'] .= '<a class="ui-state-active reg-now-btn" href="' . $events[$cntr]['url'] . '">' . $regButtonText . '</a>';
                    } else {
                        if ($num_completed >= $reg_limit && $allow_overflow == 'N' && !$expired) {
                            $events[$cntr]['tooltip'] .= '<div class="sold-out-dv">' . __('Sold Out', 'event_espresso') . '</div>';
                        } else {
                            if ($num_completed >= $reg_limit && $allow_overflow == 'Y' && !$expired) {
                                $overflow_event_id = $event->overflow_event_id;
                                $overflow_event_url = espresso_reg_url($overflow_event_id);
                                $events[$cntr]['tooltip'] .= '<a class="ui-state-active reg-now-btn" href="' . $overflow_event_url . '">' . __('Join Waiting List', 'event_espresso') . '</a>';
                            } else {
                                $events[$cntr]['tooltip'] .= '<div class="sold-out-dv">' . __('Registration Closed', 'event_espresso') . '</div>';
                            }
                        }
                    }
                }
                $events[$cntr]['tooltip'] .= '<div class="clear"></div>';
                $events[$cntr]['tooltip'] .= '</div>';
                // Position my top left...
                $events[$cntr]['tooltip_my'] = $tooltip_my;
                $events[$cntr]['tooltip_at'] = $tooltip_at;
                $events[$cntr]['tooltip_style'] = $tooltip_style;
            } else {
                $events[$cntr]['show_tooltips'] = FALSE;
            }
            // If set to true, events will be shown as all day events
            $events[$cntr]['allDay'] = FALSE;
            $cntr++;
            //			$this->timer->stop();
            //			echo $this->timer->get_elapse( __LINE__ );
        }
        //		echo '<h3>$events</h3><pre style="height:auto;border:2px solid lightblue;">' . print_r( $events, TRUE ) . '</pre><br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>';
        echo json_encode($events);
        die;
    }
function espresso_calendar_do_stuff($show_expired)
{
    global $wpdb, $org_options, $espresso_calendar, $event_category_id, $events, $eventsArray;
    remove_shortcode('LISTATTENDEES');
    $throttle = '';
    if (isset($espresso_calendar['throttle']['enable']) && $espresso_calendar['throttle']['enable'] == true) {
        if ($espresso_calendar['throttle']['amount'] > 1) {
            $throttle = 'LIMIT ' . $espresso_calendar['throttle']['amount'];
        }
    }
    // set boolean for categories
    $use_categories = isset($espresso_calendar['disable_categories']) && $espresso_calendar['disable_categories'] == FALSE ? TRUE : FALSE;
    //Build the SQL to run
    //Get the categories
    if (!empty($event_category_id)) {
        $type = 'cat';
        $sql = "SELECT e.*, c.category_meta, c.category_identifier, c.category_name, c.category_desc, c.display_desc, ese.start_time, ese.end_time FROM " . EVENTS_DETAIL_TABLE . " e ";
        $sql .= " JOIN " . EVENTS_CATEGORY_REL_TABLE . " r ON r.event_id = e.id ";
        $sql .= " JOIN " . EVENTS_CATEGORY_TABLE . " c ON c.id = r.cat_id ";
        $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id= e.id ";
        if (function_exists('espresso_version')) {
            if (espresso_version() >= '3.2.P') {
                // if we're using ee 3.2+, is_active is true/false
                $sql .= " WHERE e.is_active != false ";
            } else {
                $sql .= " WHERE e.is_active != 'N' ";
            }
        }
        $sql .= " AND e.event_status != 'D' ";
        //Deleted
        $sql .= " AND e.event_status != 'S' ";
        //Secondary/Waitlist
        $sql .= " AND e.event_status != 'P' ";
        //Pending
        $sql .= " AND e.event_status != 'X' ";
        $sql .= " AND e.event_status != 'R' ";
        //Draft
        $sql .= " AND c.category_identifier = '" . $event_category_id . "' ";
        if ($show_expired == "false") {
            $sql .= " AND start_date >= '" . date('Y-m-d') . "' ";
            $sql .= " AND e.registration_start <= '" . date('Y-m-d') . "' ";
            $sql .= " AND e.registration_end >= '" . date('Y-m-d') . "' ";
        }
    } else {
        //Get all events
        $type = 'all';
        $sql = "SELECT e.*, ese.start_time, ese.end_time";
        $sql .= " FROM " . EVENTS_DETAIL_TABLE . " e ";
        $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id= e.id ";
        if (function_exists('espresso_version')) {
            if (espresso_version() >= '3.2.P') {
                // if we're using ee 3.2+, is_active is true/false
                $sql .= " WHERE e.is_active != false ";
            } else {
                $sql .= " WHERE e.is_active != 'N' ";
            }
        }
        $sql .= " AND e.event_status != 'D' ";
        //Deleted
        $sql .= " AND e.event_status != 'S' ";
        //Secondary/Waitlist
        $sql .= " AND e.event_status != 'P' ";
        //Pending
        $sql .= " AND e.event_status != 'X' ";
        $sql .= " AND e.event_status != 'R' ";
        //Draft
        if ($show_expired == "false") {
            $sql .= " AND e.start_date >= '" . date('Y-m-d') . "' ";
            $sql .= " AND e.registration_start <= '" . date('Y-m-d') . "' ";
            $sql .= " AND e.registration_end >= '" . date('Y-m-d') . "' ";
        }
    }
    $sql .= " GROUP BY e.id ORDER BY e.start_date = '0000-00-00' ASC " . $throttle;
    //Debug
    //echo '<h4>$sql : ' . $sql . '  <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4><br /><br /><br />';
    $events = array();
    // grab event data with event IDs as the array keys
    $events_data = $wpdb->get_results($wpdb->prepare($sql, ''), OBJECT_K);
    //echo '<h3>$events_data</h3><pre style="height:auto;border:2px solid lightblue;">' . print_r( $events_data, TRUE ) . '</pre><br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>';
    //Do we need to get Category data ?
    if ($use_categories && $type == 'all') {
        // grab event_ids from query results above to use in category query
        $EVT_IDs = array_keys($events_data);
        $SQL = "SELECT event_id, c.category_meta, c.category_identifier, c.category_name, c.category_desc, c.display_desc";
        $SQL .= " FROM " . EVENTS_CATEGORY_REL_TABLE . ' r ';
        $SQL .= " LEFT JOIN " . EVENTS_CATEGORY_TABLE . " c ON c.id = r.cat_id ";
        $SQL .= " WHERE event_id IN ( '" . implode("', '", $EVT_IDs) . "' )";
        $categories = $wpdb->get_results($wpdb->prepare($SQL, ''));
        $event_categories = array();
        foreach ($categories as $category) {
            $event_categories[$category->event_id][] = $category;
        }
    }
    foreach ($events_data as $event) {
        global $this_event_id;
        $this_event_id = $event->id;
        //Get details about the category of the event
        if ($use_categories) {
            // extract info from separate array of category data ?
            if (isset($event_categories[$event->id]) && $type == 'all') {
                // get first element of array without modifying original array
                $primary_cat = array_shift(array_values($event_categories[$event->id]));
                $category_data['category_meta'] = unserialize($primary_cat->category_meta);
            } else {
                if ($type == 'cat') {
                    // or was one category set via the shortcode
                    $category_data['category_meta'] = unserialize($event->category_meta);
                } else {
                    $category_data['category_meta'] = array();
                }
            }
            //Assign colors to events by category
            if (isset($category_data['category_meta']['use_pickers']) && $category_data['category_meta']['use_pickers'] == 'Y') {
                $eventArray['color'] = $category_data['category_meta']['event_background'];
                $eventArray['textColor'] = $category_data['category_meta']['event_text_color'];
            }
        }
        $event_meta = unserialize($event->event_meta);
        //If the version of Event Espresso is 3.2 or older, we need to use the new permalink structure. If not, then we need to default to the structure.
        if (function_exists('espresso_version')) {
            if (espresso_version() >= '3.2.P') {
                switch ($espresso_calendar['espresso_page_post']) {
                    case 'P':
                        $registration_url = get_permalink($event->post_id);
                        break;
                    case 'R':
                    default:
                        //$registration_url = get_home_url(). '/?page_id=' . $org_options['event_page_id'] . '&regevent_action=register&event_id=' . $event->id;
                        $registration_url = espresso_reg_url($event->id, $event->slug);
                        break;
                }
            } else {
                switch ($espresso_calendar['espresso_page_post']) {
                    case 'P':
                        $registration_url = get_home_url() . '/?p=' . $event->post_id;
                        break;
                    case 'R':
                    default:
                        $registration_url = get_home_url() . '/?page_id=' . $org_options['event_page_id'] . '&regevent_action=register&event_id=' . $event->id;
                        break;
                }
            }
        }
        //Checkthe status of the event. If the event is expired, the link to the registration page will be deactivated.
        $eventArray['url'] = '';
        $status = '';
        //Changed 8-30-2011 by Seth
        /* switch (event_espresso_get_status($event->id)){
        	  case 'NOT_ACTIVE':
        	  $status = ' - ' . __('Expired','event_espresso');
        	  break;
        	  case 'ACTIVE':
        	  $status = '';
        	  break;
        	  } */
        //End Seth
        // Build calendar array from $event data
        //Gets the URL of the event and links the event to the registration form.
        $eventArray['url'] = $event->externalURL != '' ? htmlspecialchars_decode($event->externalURL) : $registration_url;
        //Id of the event
        $eventArray['id'] = $event->id;
        if (isset($espresso_calendar['show_attendee_limit']) && $espresso_calendar['show_attendee_limit'] == true) {
            $orig_attendee_limit = get_number_of_attendees_reg_limit($event->id, $type = 'num_attendees_slash_reg_limit');
            $parse_limits = explode('/', $orig_attendee_limit, 2);
            $num_completed = $parse_limits[0];
            $reg_limit = $parse_limits[1];
            if ($reg_limit >= 999999) {
                $eventArray['attendee_limit'] = __('UNL', 'event_espresso');
            } else {
                $eventArray['attendee_limit'] = $num_completed . '/' . $reg_limit;
            }
        }
        //Get the title of the event
        $ee_event_title = htmlspecialchars_decode(stripslashes_deep($event->event_name . $status), ENT_QUOTES);
        $eventArray['title'] = $ee_event_title;
        //Gets the description of the event. This can be used for hover effects such as jQuery Tooltips or QTip
        if (isset($espresso_calendar['show_tooltips']) && $espresso_calendar['show_tooltips'] == true) {
            $eventArray['description'] = espresso_format_content($event->event_desc);
        }
        //Supports 3.2 short descriptions
        if (isset($org_options['template_settings']['display_short_description_in_event_list']) && $org_options['template_settings']['display_short_description_in_event_list'] == true) {
            $eventArray['description'] = array_shift(explode('<!--more-->', $eventArray['description']));
        }
        //Supports 3.1 short descriptions
        if (isset($org_options['display_short_description_in_event_list']) && $org_options['display_short_description_in_event_list'] == 'Y') {
            $eventArray['description'] = array_shift(explode('<!--more-->', $eventArray['description']));
        }
        $eventArray['display_reg_form'] = $event->display_reg_form;
        //Get the start and end times for each event
        //important! time must be in iso8601 format 2010-05-10T08:30!!
        $eventArray['start'] = date("c", strtotime($event->start_date . ' ' . event_date_display($event->start_time, get_option('time_format'))));
        $eventArray['end'] = date("c", strtotime($event->end_date . ' ' . event_date_display($event->end_time, get_option('time_format'))));
        $eventArray['day'] = date("j", strtotime($event->end_date));
        $eventArray['month'] = date("n", strtotime($event->end_date));
        if ($eventArray['end'] < date('Y-m-d')) {
            $eventArray['expired'] = 'expired';
        } else {
            $eventArray['expired'] = '';
        }
        $eventArray['today'] = date('Y-m-d');
        $eventArray['this_month'] = date('m');
        $eventArray['startTime'] = !empty($event->start_time) ? event_date_display($event->start_time, $espresso_calendar['time_format']) : '';
        $eventArray['endTime'] = !empty($event->end_time) ? event_date_display($event->end_time, $espresso_calendar['time_format']) : '';
        // Add thumb to eventArray
        $eventArray['event_img_thumb'] = '';
        if (isset($espresso_calendar['enable_calendar_thumbs']) && $espresso_calendar['enable_calendar_thumbs'] == true) {
            if (isset($event_meta['event_thumbnail_url'])) {
                $calendar_thumb = $event_meta['event_thumbnail_url'];
                //Debug:
                //echo '<a href="' . $registration_url . '"><img class="event-id-'. $event->id . '" src="'. $calendar_thumb . '" alt="" title="' . $ee_event_title . '" / ></a>';
                $eventArray['event_img_thumb'] = $calendar_thumb;
            }
        }
        //Custom fields:
        //These can be used to perform special functions in your display.
        //This decalares the category ID as the CSS class name
        $eventArray['className'] = '';
        $eventArray['eventType'] = '';
        if ($use_categories) {
            if (isset($espresso_calendar['enable_cat_classes']) && $espresso_calendar['enable_cat_classes'] == TRUE) {
                if (isset($event_categories[$event->id]) && $type == 'all') {
                    foreach ($event_categories[$event->id] as $EVT) {
                        //This is the css class name
                        $eventArray['className'] .= ' ' . $EVT->category_identifier;
                    }
                    // set event type to the category id
                    $eventArray['eventType'] = isset($primary_cat->category_name) && !empty($primary_cat->category_name) ? $primary_cat->category_name : '';
                } else {
                    //This is the css class name
                    $eventArray['className'] .= isset($event->category_identifier) ? ' ' . $event->category_identifier : '';
                    // set event type to the category id
                    $eventArray['eventType'] .= isset($event->category_name) ? ' ' . $event->category_name : '';
                }
            }
        }
        //If set to true, events will be shown as all day events
        $eventArray['allDay'] = FALSE;
        //Array of the event details
        $events[] = $eventArray;
        //Reset category colors
        $eventArray['color'] = '';
        $eventArray['textColor'] = '';
    }
    //Debug:
    //Print the results of the code above
    //echo json_encode($events);
    //echo '<style type="text/css">'.$category_styles.'</style>';
}
function add_event_to_db($recurrence_arr = array())
{
    global $wpdb, $org_options, $current_user, $espresso_premium;
    //Security check using nonce
    if (empty($_POST['nonce_verify_insert_event']) || !wp_verify_nonce($_POST['nonce_verify_insert_event'], 'espresso_verify_insert_event_nonce')) {
        if (!isset($recurrence_arr['bypass_nonce'])) {
            print '<h3 class="error">' . __('Sorry, there was a security error and your event was not saved.', 'event_espresso') . '</h3>';
            return;
        }
    }
    //Set FEM to false
    $use_fem = FALSE;
    $is_espresso_event_manager = false;
    //If using FEM
    if (isset($_REQUEST['ee_fem_action']) && $_REQUEST['ee_fem_action'] == 'ee_fem_add') {
        $use_fem = TRUE;
        if (function_exists('espresso_member_data') && espresso_member_data('role') == 'espresso_event_manager') {
            global $espresso_manager;
            $event_manager_approval = isset($espresso_manager['event_manager_approval']) && $espresso_manager['event_manager_approval'] == 'Y' ? true : false;
            $is_espresso_event_manager = TRUE;
        }
    }
    //Don't show sql errors if using the FEM
    if ($use_fem === FALSE) {
        $wpdb->show_errors();
    }
    static $recurrence_id = null;
    if (defined('EVENT_ESPRESSO_RECURRENCE_TABLE')) {
        require_once EVENT_ESPRESSO_RECURRENCE_FULL_PATH . "functions/re_functions.php";
        $recurrence_id = array_key_exists('recurrence_id', $recurrence_arr) ? $recurrence_arr['recurrence_id'] : Null;
        if ($_POST['recurrence'] == 'Y' && count($recurrence_arr) < 2) {
            if (is_null($recurrence_id)) {
                $recurrence_id = add_recurrence_master_record();
            }
            $re_params = array('start_date' => $_POST['recurrence_type'] == 'a' ? sanitize_text_field($_POST['recurrence_start_date']) : sanitize_text_field($_POST['recurrence_manual_dates']), 'event_end_date' => $_POST['recurrence_type'] == 'a' ? sanitize_text_field($_POST['recurrence_event_end_date']) : sanitize_text_field($_POST['recurrence_manual_end_dates']), 'end_date' => $_POST['recurrence_type'] == 'a' ? sanitize_text_field($_POST['recurrence_end_date']) : sanitize_text_field($_POST['end_date']), 'registration_start' => sanitize_text_field($_POST['recurrence_regis_start_date']), 'registration_end' => sanitize_text_field($_POST['recurrence_regis_end_date']), 'frequency' => sanitize_text_field($_POST['recurrence_frequency']), 'interval' => sanitize_text_field($_POST['recurrence_interval']), 'type' => sanitize_text_field($_POST['recurrence_type']), 'weekdays' => isset($_POST['recurrence_weekday']) ? $_POST['recurrence_weekday'] : '', 'repeat_by' => $_POST['recurrence_repeat_by'], 'recurrence_regis_date_increment' => $_POST['recurrence_regis_date_increment'], 'recurrence_manual_dates' => $_POST['recurrence_manual_dates'], 'recurrence_manual_end_dates' => $_POST['recurrence_manual_end_dates'], 'recurrence_id' => $recurrence_id, 'adding_to_db' => 'Y');
            $recurrence_dates = $_POST['recurrence_type'] == 'm' ? find_recurrence_manual_dates($re_params) : find_recurrence_dates($re_params);
        }
    }
    //echo_f('re array', $recurrence_dates);
    if (defined('EVENT_ESPRESSO_RECURRENCE_MODULE_ACTIVE') && $_POST['recurrence'] == 'Y' && count($recurrence_arr) == 0) {
        //skip the first insert because we do not have the start dates
    } else {
        $event_meta = array();
        //will be used to hold event meta data
        //Filters the event description based on user level
        $user_access = apply_filters('filter_hook_espresso_event_unfiltered_description', current_user_can('administrator'));
        $_REQUEST['event_desc'] = is_admin() || $user_access ? $_REQUEST['event_desc'] : apply_filters('filter_hook_espresso_event_wp_kses_post_description', wp_kses_post($_REQUEST['event_desc']));
        $event_code = uniqid($current_user->ID . '-');
        $event_name = !empty($_REQUEST['event']) ? sanitize_text_field($_REQUEST['event']) : $event_code;
        if (!isset($_REQUEST['event_identifier']) || $_REQUEST['event_identifier'] == '') {
            $event_identifier = sanitize_title_with_dashes($event_name . '-' . $event_code);
        } else {
            $event_identifier = sanitize_title_with_dashes($_REQUEST['event_identifier']) . $event_code;
        }
        $event_desc = !empty($_REQUEST['event_desc']) ? $_REQUEST['event_desc'] : '';
        $display_desc = !empty($_REQUEST['display_desc']) ? sanitize_text_field($_REQUEST['display_desc']) : 'Y';
        $display_reg_form = !empty($_REQUEST['display_reg_form']) ? sanitize_text_field($_REQUEST['display_reg_form']) : 'Y';
        $externalURL = isset($_REQUEST['externalURL']) ? sanitize_text_field($_REQUEST['externalURL']) : '';
        $post_type = !empty($_REQUEST['espresso_post_type']) ? sanitize_text_field($_REQUEST['espresso_post_type']) : '';
        $reg_limit = !empty($_REQUEST['reg_limit']) ? sanitize_text_field($_REQUEST['reg_limit']) : '999999';
        $_REQUEST['reg_limit'] = $reg_limit;
        $allow_multiple = !empty($_REQUEST['allow_multiple']) ? sanitize_text_field($_REQUEST['allow_multiple']) : 'N';
        $additional_limit = !empty($_REQUEST['additional_limit']) && $_REQUEST['additional_limit'] > 0 ? sanitize_text_field($_REQUEST['additional_limit']) : '5';
        $_REQUEST['additional_limit'] = $additional_limit;
        $member_only = !empty($_REQUEST['member_only']) ? sanitize_text_field($_REQUEST['member_only']) : 'N';
        $is_active = !empty($_REQUEST['is_active']) ? sanitize_text_field($_REQUEST['is_active']) : 'Y';
        $event_status = !empty($_REQUEST['event_status']) ? sanitize_text_field($_REQUEST['event_status']) : 'A';
        $use_coupon_code = !empty($_REQUEST['use_coupon_code']) ? sanitize_text_field($_REQUEST['use_coupon_code']) : 'N';
        $ticket_id = empty($_REQUEST['ticket_id']) ? 0 : sanitize_text_field($_REQUEST['ticket_id']);
        //Get the first instance of the start and end times
        $start_time = !empty($_REQUEST['start_time'][0]) ? sanitize_text_field($_REQUEST['start_time'][0]) : '8:00 AM';
        $_REQUEST['event_start_time'] = $start_time;
        $end_time = !empty($_REQUEST['end_time'][0]) ? sanitize_text_field($_REQUEST['end_time'][0]) : '5:00 PM';
        $_REQUEST['event_end_time'] = $end_time;
        // Add Timezone
        $timezone_string = isset($_REQUEST['timezone_string']) ? sanitize_text_field($_REQUEST['timezone_string']) : '';
        //Early discounts
        $early_disc = !empty($_REQUEST['early_disc']) ? sanitize_text_field($_REQUEST['early_disc']) : '';
        $early_disc_date = !empty($_REQUEST['early_disc_date']) ? sanitize_text_field($_REQUEST['early_disc_date']) : '';
        $early_disc_percentage = !empty($_REQUEST['early_disc_percentage']) ? sanitize_text_field($_REQUEST['early_disc_percentage']) : '';
        //Alternate email address field
        $alt_email = !empty($_REQUEST['alt_email']) ? sanitize_text_field($_REQUEST['alt_email']) : '';
        //Send a custom emal
        $send_mail = !empty($_REQUEST['send_mail']) ? sanitize_text_field($_REQUEST['send_mail']) : 'N';
        //Custom email content
        $conf_mail = !empty($_REQUEST['conf_mail']) ? esc_html($_REQUEST['conf_mail']) : '';
        //Use a premade custom email
        $email_id = isset($_REQUEST['email_name']) ? (int) $_REQUEST['email_name'] : '0';
        //Venue Information
        $venue_title = isset($_REQUEST['venue_title']) ? sanitize_text_field($_REQUEST['venue_title']) : '';
        $venue_url = isset($_REQUEST['venue_url']) ? sanitize_text_field($_REQUEST['venue_url']) : '';
        $venue_phone = isset($_REQUEST['venue_phone']) ? sanitize_text_field($_REQUEST['venue_phone']) : '';
        $venue_image = isset($_REQUEST['venue_image']) ? sanitize_text_field($_REQUEST['venue_image']) : '';
        //Virtual location
        $virtual_url = !empty($_REQUEST['virtual_url']) ? sanitize_text_field($_REQUEST['virtual_url']) : '';
        $virtual_phone = !empty($_REQUEST['virtual_phone']) ? sanitize_text_field($_REQUEST['virtual_phone']) : '';
        //Address/venue information
        $address = isset($_REQUEST['address']) ? sanitize_text_field($_REQUEST['address']) : '';
        $address2 = isset($_REQUEST['address2']) ? sanitize_text_field($_REQUEST['address2']) : '';
        $city = isset($_REQUEST['city']) ? sanitize_text_field($_REQUEST['city']) : '';
        $state = isset($_REQUEST['state']) ? sanitize_text_field($_REQUEST['state']) : '';
        $zip = isset($_REQUEST['zip']) ? sanitize_text_field($_REQUEST['zip']) : '';
        $country = isset($_REQUEST['country']) ? sanitize_text_field($_REQUEST['country']) : '';
        $phone = isset($_REQUEST['phone']) ? sanitize_text_field($_REQUEST['phone']) : '';
        $event_location = '';
        if (!empty($address)) {
            $event_location .= $address . ' ';
        }
        if (!empty($address2)) {
            $event_location .= '<br />' . $address2;
        }
        if (!empty($city)) {
            $event_location .= '<br />' . $city;
        }
        if (!empty($state)) {
            $event_location .= ', ' . $state;
        }
        if (!empty($zip)) {
            $event_location .= ', ' . $state;
        }
        if (!empty($country)) {
            $event_location .= '<br />' . $country;
        }
        if ($is_espresso_event_manager == true && $use_fem == true && $event_manager_approval == true) {
            $event_status = 'P';
        }
        //Get the registration start and end times
        $_REQUEST['registration_startT'] = !empty($_REQUEST['registration_startT']) ? sanitize_text_field($_REQUEST['registration_startT']) : '12:01 AM';
        $_REQUEST['registration_endT'] = !empty($_REQUEST['registration_endT']) ? sanitize_text_field($_REQUEST['registration_endT']) : '11:59 PM';
        // Add registration times
        $registration_startT = event_date_display($_REQUEST['registration_startT'], 'H:i');
        $registration_endT = event_date_display($_REQUEST['registration_endT'], 'H:i');
        $_REQUEST['registration_start'] = !empty($_REQUEST['registration_start']) ? sanitize_text_field($_REQUEST['registration_start']) : date('Y-m-d');
        $_REQUEST['registration_end'] = !empty($_REQUEST['registration_end']) ? sanitize_text_field($_REQUEST['registration_end']) : date('Y-m-d', time() + 60 * 60 * 24 * 29);
        $registration_start = array_key_exists('registration_start', $recurrence_arr) ? $recurrence_arr['registration_start'] : $_REQUEST['registration_start'];
        $registration_end = array_key_exists('registration_end', $recurrence_arr) ? $recurrence_arr['registration_end'] : $_REQUEST['registration_end'];
        //Check which start/end date to use.  Will be determined by recurring events addon, if installed.
        if (array_key_exists('recurrence_start_date', $recurrence_arr)) {
            //Recurring event
            $start_date = $recurrence_arr['recurrence_start_date'];
        } elseif (!empty($_REQUEST['start_date']) && !empty($_REQUEST['recurrence_start_date'])) {
            //If they leave the Event Start Date empty, the First Event Date in the recurrence module is selected
            $start_date = sanitize_text_field($_REQUEST['recurrence_start_date']);
        } elseif (isset($_POST['recurrence']) && $_POST['recurrence'] == 'Y' && !empty($_REQUEST['start_date'])) {
            $start_date = sanitize_text_field($_REQUEST['recurrence_manual_dates'][0]);
        } else {
            $start_date = !empty($_REQUEST['start_date']) ? sanitize_text_field($_REQUEST['start_date']) : date('Y-m-d', time() + 60 * 60 * 24 * 30);
        }
        $_REQUEST['start_date'] = $start_date;
        if (array_key_exists('recurrence_event_end_date', $recurrence_arr)) {
            //If this is a Recurring event
            $end_date = $recurrence_arr['recurrence_event_end_date'];
        } elseif (!empty($_REQUEST['end_date']) && !empty($_REQUEST['recurrence_event_end_date'])) {
            //If they leave the Event Start Date empty, the First Event Date in the recurrence module is selected
            $end_date = $_REQUEST['recurrence_event_end_date'];
        } elseif (isset($_POST['recurrence']) && $_POST['recurrence'] == 'Y' && !empty($_REQUEST['end_date'])) {
            $end_date = $_REQUEST['recurrence_manual_end_dates'][count($_REQUEST['recurrence_manual_end_dates']) - 1];
        } else {
            $end_date = !empty($_REQUEST['end_date']) ? $_REQUEST['end_date'] : date('Y-m-d', time() + 60 * 60 * 24 * 30);
        }
        $_REQUEST['end_date'] = $end_date;
        if (array_key_exists('visible_on', $recurrence_arr)) {
            //If this is a Recurring event
            $visible_on = $recurrence_arr['visible_on'];
        } elseif (isset($_REQUEST['visible_on']) && $_REQUEST['visible_on'] != '') {
            $visible_on = $_REQUEST['visible_on'];
        } elseif (isset($_REQUEST['visible_on']) && $_REQUEST['visible_on'] == '' && count($recurrence_dates) > 0) {
            $visible_on = $recurrence_dates[$start_date]['visible_on'];
        } else {
            $visible_on = date("Y-m-d");
        }
        //Questions/question groups
        $question_groups = empty($_REQUEST['question_groups']) ? serialize(array(1)) : serialize($_REQUEST['question_groups']);
        $add_attendee_question_groups = empty($_REQUEST['add_attendee_question_groups']) ? '' : $_REQUEST['add_attendee_question_groups'];
        //Process event meta data
        $event_meta['venue_id'] = isset($_REQUEST['venue_id']) ? $_REQUEST['venue_id'][0] : 0;
        $event_meta['additional_attendee_reg_info'] = !empty($_REQUEST['additional_attendee_reg_info']) ? sanitize_text_field($_REQUEST['additional_attendee_reg_info']) : '2';
        $event_meta['add_attendee_question_groups'] = $add_attendee_question_groups;
        $event_meta['date_submitted'] = date("Y-m-d H:i:s");
        $event_meta['default_payment_status'] = !empty($_REQUEST['default_payment_status']) ? sanitize_text_field($_REQUEST['default_payment_status']) : '';
        //Process thumbnail uploads
        $event_thumbnail_url = '';
        if (isset($_REQUEST['upload_image']) && !empty($_REQUEST['upload_image'])) {
            $event_meta['event_thumbnail_url'] = sanitize_text_field($_REQUEST['upload_image']);
            $event_thumbnail_url = sanitize_text_field($event_meta['event_thumbnail_url']);
        }
        if (isset($_REQUEST['emeta']) && !empty($_REQUEST['emeta'])) {
            foreach ($_REQUEST['emeta'] as $k => $v) {
                $event_meta[$v] = strlen(trim($_REQUEST['emetad'][$k])) > 0 ? sanitize_text_field($_REQUEST['emetad'][$k]) : '';
            }
        }
        $event_meta = serialize($event_meta);
        //echo strlen(trim($_REQUEST['emetad'][$k]));
        //print_r($_REQUEST['emeta'] );
        ############ Added by wp-developers ######################
        $require_pre_approval = 0;
        if (isset($_REQUEST['require_pre_approval'])) {
            $require_pre_approval = sanitize_text_field($_REQUEST['require_pre_approval']);
        }
        ################# END #################
        //When adding colums to the following arrays, be sure both arrays have equal values.
        $sql = array('event_code' => $event_code, 'event_name' => $event_name, 'event_desc' => $event_desc, 'display_desc' => $display_desc, 'display_reg_form' => $display_reg_form, 'event_identifier' => $event_identifier, 'address' => $address, 'address2' => $address2, 'city' => $city, 'state' => $state, 'zip' => $zip, 'country' => $country, 'phone' => $phone, 'virtual_url' => $virtual_url, 'virtual_phone' => $virtual_phone, 'venue_title' => $venue_title, 'venue_url' => $venue_url, 'venue_phone' => $venue_phone, 'venue_image' => $venue_image, 'registration_start' => $registration_start, 'registration_end' => $registration_end, 'start_date' => $start_date, 'end_date' => $end_date, 'allow_multiple' => $allow_multiple, 'send_mail' => $send_mail, 'is_active' => $is_active, 'event_status' => $event_status, 'conf_mail' => $conf_mail, 'use_coupon_code' => $use_coupon_code, 'member_only' => $member_only, 'externalURL' => $externalURL, 'early_disc' => $early_disc, 'early_disc_date' => $early_disc_date, 'early_disc_percentage' => $early_disc_percentage, 'alt_email' => $alt_email, 'question_groups' => $question_groups, 'registration_startT' => $registration_startT, 'registration_endT' => $registration_endT, 'reg_limit' => (int) $reg_limit, 'additional_limit' => (int) $additional_limit, 'recurrence_id' => $recurrence_id, 'email_id' => (int) $email_id, 'wp_user' => (int) $current_user->ID, 'event_meta' => $event_meta, 'require_pre_approval' => $require_pre_approval, 'timezone_string' => $timezone_string, 'submitted' => date('Y-m-d H:i:s', time()), 'ticket_id' => (int) $ticket_id);
        $sql_data = array('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%s', '%s', '%s', '%s', '%d');
        /* echo 'Debug: <br />';
        	  print_r($sql);
        	  echo '<br />';
        	  print 'Number of vars: ' . count ($sql);
        	  echo '<br />';
        	  print 'Number of cols: ' . count($sql_data); */
        //Add groupon reference if installed
        if (function_exists('event_espresso_add_event_to_db_groupon')) {
            $sql = event_espresso_add_event_to_db_groupon($sql, sanitize_text_field($_REQUEST['use_groupon_code']));
            //print count ($sql);
            $sql_data = array_merge((array) $sql_data, (array) '%s');
            //print count($sql_data);
            if (!$wpdb->insert(EVENTS_DETAIL_TABLE, $sql, $sql_data)) {
                $error = true;
            }
        } else {
            if (!$wpdb->insert(EVENTS_DETAIL_TABLE, $sql, $sql_data)) {
                $error = true;
            }
        }
        $last_event_id = $wpdb->insert_id;
        ############# MailChimp Integration ##############
        if (defined('EVENTS_MAILCHIMP_ATTENDEE_REL_TABLE') && $espresso_premium == true) {
            MailChimpController::add_event_list_rel($last_event_id);
        }
        if (function_exists('espresso_fb_createevent') == 'true' && $espresso_premium == true) {
            espresso_fb_createevent($last_event_id);
        }
        //Added for seating chart addon
        if (isset($_REQUEST['seating_chart_id'])) {
            $cls_seating_chart = new seating_chart();
            $cls_seating_chart->associate_event_seating_chart($_REQUEST['seating_chart_id'], $last_event_id);
        }
        //Add event to a category
        $string_cat = '';
        if (isset($_REQUEST['event_category']) && $_REQUEST['event_category'] != '') {
            foreach ($_REQUEST['event_category'] as $k => $v) {
                if ($v != '') {
                    $sql_cat = "INSERT INTO " . EVENTS_CATEGORY_REL_TABLE . " (event_id, cat_id) VALUES ('" . $last_event_id . "', '" . (int) $v . "')";
                    if (!$wpdb->query($wpdb->prepare($sql_cat, NULL))) {
                        $error = true;
                    }
                    //We get the category id's of the event and put them in events_detail_table.category_id as a well-formatted string (id,n id)
                    $string_cat .= $v . ",";
                }
            }
            if ($string_cat != "" && $string_cat != ",") {
                $cleaned_string_cat = substr($string_cat, 0, -1);
                $tmp = explode(",", $cleaned_string_cat);
                sort($tmp);
                $cleaned_string_cat = implode(",", $tmp);
                trim($cleaned_string_cat);
                $sql_insert_event_detail_category_id = "UPDATE " . EVENTS_DETAIL_TABLE . " SET category_id = '" . $cleaned_string_cat . "' WHERE id='" . $last_event_id . "'";
                $wpdb->query($wpdb->prepare($sql_insert_event_detail_category_id, NULL));
            }
        }
        //Process staff assignments
        if (isset($_REQUEST['event_person']) && !empty($_REQUEST['event_person'])) {
            foreach ($_REQUEST['event_person'] as $k => $v) {
                if ($v != '') {
                    $sql_ppl = "INSERT INTO " . EVENTS_PERSONNEL_REL_TABLE . " (event_id, person_id) VALUES ('" . $last_event_id . "', '" . $v . "')";
                    //echo "$sql_ppl <br>";
                    $wpdb->query($wpdb->prepare($sql_ppl, NULL));
                }
            }
        }
        //Process dynamic adding of venues
        //If we are adding an venue from within the event editor.
        //Then we need to add it to the venue database and add the id to the event.
        if (isset($_REQUEST['add_new_venue_dynamic']) && $_REQUEST['add_new_venue_dynamic'] == 'true' && $_REQUEST['venue_id'][0] == '0') {
            require_once EVENT_ESPRESSO_INCLUDES_DIR . 'admin-files/venue-management/add_venue_to_db.php';
            $_REQUEST['venue_id'][0] = add_venue_to_db();
        }
        //Process venues
        if (isset($_REQUEST['venue_id']) && !empty($_REQUEST['venue_id'])) {
            foreach ($_REQUEST['venue_id'] as $k => $v) {
                if ($v != '' && $v != 0) {
                    $sql_venues = "INSERT INTO " . EVENTS_VENUE_REL_TABLE . " (event_id, venue_id) VALUES ('" . $last_event_id . "', '" . $v . "')";
                    $wpdb->query($wpdb->prepare($sql_venues, NULL));
                }
            }
        }
        //Process the discounts
        if (isset($_REQUEST['event_discount']) && !empty($_REQUEST['event_discount']) && $_REQUEST['use_coupon_code'] == 'Y') {
            //if they have specified to use specific coupon codes, THEN we add entries ot teh discount rel table
            //otherwise we shouldn't
            foreach ($_REQUEST['event_discount'] as $k => $v) {
                if ($v != '') {
                    $sql_cat = "INSERT INTO " . EVENTS_DISCOUNT_REL_TABLE . " (event_id, discount_id) VALUES ('" . $last_event_id . "', '" . $v . "')";
                    if (!$wpdb->query($wpdb->prepare($sql_cat, NULL))) {
                        $error = true;
                    }
                }
            }
        }
        //Process event times
        if (isset($_REQUEST['start_time']) && !empty($_REQUEST['start_time'])) {
            foreach ($_REQUEST['start_time'] as $k => $v) {
                $time_qty = isset($_REQUEST['time_qty']) && strlen(trim($_REQUEST['time_qty'][$k])) > 0 ? "'" . $_REQUEST['time_qty'][$k] . "'" : '0';
                $v = !empty($v) ? $v : $start_time;
                $_REQUEST['end_time'][$k] = !empty($_REQUEST['end_time'][$k]) ? $_REQUEST['end_time'][$k] : $end_time;
                $sql3 = "INSERT INTO " . EVENTS_START_END_TABLE . " (event_id, start_time, end_time, reg_limit) VALUES ('" . $last_event_id . "', '" . event_date_display($v, 'H:i') . "', '" . event_date_display($_REQUEST['end_time'][$k], 'H:i') . "', " . $time_qty . ")";
                if (!$wpdb->query($wpdb->prepare($sql3, NULL))) {
                    $error = true;
                }
            }
        }
        //Process event costs
        if (isset($_REQUEST['event_cost']) && !empty($_REQUEST['event_cost'])) {
            foreach ($_REQUEST['event_cost'] as $k => $v) {
                if ($v != '') {
                    $v = (double) preg_replace('/[^0-9\\.]/ui', '', $v);
                    //Removes non-integer characters
                    $price_type = !empty($_REQUEST['price_type'][$k]) ? sanitize_text_field(stripslashes_deep($_REQUEST['price_type'][$k])) : __('General Admission', 'event_espresso');
                    $member_price_type = !empty($_REQUEST['member_price_type'][$k]) ? sanitize_text_field(stripslashes_deep($_REQUEST['member_price_type'][$k])) : __('Members Admission', 'event_espresso');
                    $member_price = !empty($_REQUEST['member_price'][$k]) ? $_REQUEST['member_price'][$k] : $v;
                    //$sql_price = "INSERT INTO " . EVENTS_PRICES_TABLE . " (event_id, event_cost, surcharge, surcharge_type, price_type, member_price, member_price_type) VALUES ('" . $last_event_id . "', '" . $v . "', '" . $_REQUEST['surcharge'][$k] . "', '" . $_REQUEST['surcharge_type'][$k] . "', '" . $price_type . "', '" . $member_price . "', '" . $member_price_type . "')";
                    //echo "$sql3 <br>";
                    $sql_price = array('event_id' => $last_event_id, 'event_cost' => $v, 'surcharge' => $_REQUEST['surcharge'][$k], 'surcharge_type' => $_REQUEST['surcharge_type'][$k], 'price_type' => $price_type, 'member_price' => $member_price, 'member_price_type' => $member_price_type);
                    $sql_price_data = array('%d', '%s', '%s', '%s', '%s', '%s', '%s');
                    if (!$wpdb->insert(EVENTS_PRICES_TABLE, $sql_price, $sql_price_data)) {
                        $error = true;
                    }
                }
            }
        } elseif (isset($_REQUEST['event_cost']) && $_REQUEST['event_cost'][0] == 0) {
            $sql_price = "INSERT INTO " . EVENTS_PRICES_TABLE . " (event_id, event_cost, surcharge, price_type, member_price, member_price_type) VALUES ('" . $last_event_id . "', '0.00', '0.00', '" . __('Free', 'event_espresso') . "', '0.00', '" . __('Free', 'event_espresso') . "')";
            if (!$wpdb->query($wpdb->prepare($sql_price, NULL))) {
                $error = true;
            }
        }
        //Process blog or custom post
        if (isset($_REQUEST['create_post']) && $_REQUEST['create_post'] == 'Y') {
            $post_type = !empty($_REQUEST['espresso_post_type']) ? $_REQUEST['espresso_post_type'] : 'post';
            if ($post_type == 'post') {
                if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php") || file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . "templates/event_post.php")) {
                    // Load message from template into message post variable
                    ob_start();
                    if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php")) {
                        require_once EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php";
                    } else {
                        require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/event_post.php";
                    }
                    $post_content = ob_get_contents();
                    ob_end_clean();
                } else {
                    _e('There was error finding a post template. Please verify your post templates are available.', 'event_espresso');
                }
            } elseif ($post_type == 'espresso_event') {
                ob_start();
                echo $event_desc;
                $post_content = ob_get_contents();
                ob_end_clean();
                // if there's a cart link shortcode in the post, replace the shortcode with one that includes the event_id
                if (preg_match("/ESPRESSO_CART_LINK/", $post_content)) {
                    $post_content = preg_replace('/ESPRESSO_CART_LINK/', 'ESPRESSO_CART_LINK event_id=' . $event_id, $post_content);
                }
            }
            $my_post = array();
            $my_post['post_title'] = sanitize_text_field($_REQUEST['event']);
            $my_post['post_content'] = $post_content;
            $my_post['post_status'] = 'publish';
            $my_post['post_author'] = !empty($_REQUEST['user']) ? $_REQUEST['user'] : '';
            $my_post['post_category'] = !empty($_REQUEST['post_category']) ? $_REQUEST['post_category'] : '';
            $my_post['tags_input'] = !empty($_REQUEST['post_tags']) ? $_REQUEST['post_tags'] : '';
            $my_post['post_type'] = !empty($post_type) ? $post_type : 'post';
            //print_r($my_post);
            // Insert the post into the database
            $post_id = wp_insert_post($my_post);
            // Store the POST ID so it can be displayed on the edit page
            $sql = array('post_id' => $post_id, 'post_type' => $post_type);
            add_post_meta($post_id, 'event_id', $last_event_id);
            add_post_meta($post_id, 'event_meta', $event_meta);
            add_post_meta($post_id, 'event_identifier', $event_identifier);
            add_post_meta($post_id, 'event_start_date', $start_date);
            add_post_meta($post_id, 'event_end_date', $end_date);
            add_post_meta($post_id, 'event_location', $event_location);
            add_post_meta($post_id, 'event_thumbnail_url', $event_thumbnail_url);
            add_post_meta($post_id, 'virtual_url', $virtual_url);
            add_post_meta($post_id, 'virtual_phone', $virtual_phone);
            add_post_meta($post_id, 'event_address', $address);
            add_post_meta($post_id, 'event_address2', $address2);
            add_post_meta($post_id, 'event_city', $city);
            add_post_meta($post_id, 'event_state', $state);
            add_post_meta($post_id, 'event_country', $country);
            add_post_meta($post_id, 'event_phone', $phone);
            add_post_meta($post_id, 'venue_title', $venue_title);
            add_post_meta($post_id, 'venue_url', $venue_url);
            add_post_meta($post_id, 'venue_phone', $venue_phone);
            add_post_meta($post_id, 'venue_image', $venue_image);
            add_post_meta($post_id, 'event_externalURL', $externalURL);
            add_post_meta($post_id, 'event_reg_limit', $reg_limit);
            add_post_meta($post_id, 'event_start_time', time_to_24hr($start_time));
            add_post_meta($post_id, 'event_end_time', time_to_24hr($end_time));
            add_post_meta($post_id, 'event_registration_start', $registration_start);
            add_post_meta($post_id, 'event_registration_end', $registration_end);
            add_post_meta($post_id, 'event_registration_startT', $registration_startT);
            add_post_meta($post_id, 'event_registration_endT', $registration_endT);
            //add_post_meta( $post_id, 'timezone_string', $_REQUEST['timezone_string'] );
            $sql_data = array('%d', '%s');
            $update_id = array('id' => $last_event_id);
            $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
        }
        if (empty($error)) {
            ?>
			<div id="message" class="updated fade"><p><strong><?php 
            _e('The event', 'event_espresso');
            ?>
			<a href="<?php 
            echo espresso_reg_url($last_event_id);
            ?>
" target="_blank">
				<?php 
            echo htmlentities(stripslashes(sanitize_text_field($_REQUEST['event'])), ENT_QUOTES, 'UTF-8');
            ?>
				
			</a>

			<?php 
            _e('has been added for ', 'event_espresso');
            echo date("m/d/Y", strtotime($start_date));
            ?>
 <a href="<?php 
            echo admin_url();
            ?>
admin.php?page=events&action=edit&event_id=<?php 
            echo $last_event_id;
            ?>
"><?php 
            _e('Edit this event?', 'event_espresso');
            ?>
</a></strong></p></div>
		<?php 
        } else {
            ?>
			<div id="message" class="error"><p><strong><?php 
            _e('There was an error in your submission. The event was not saved! Please try again.', 'event_espresso');
            ?>
 <?php 
            print $wpdb->print_error();
            ?>
</strong></p></div>
			<?php 
        }
    }
    //With the recursion of this function, additional recurring events will be added
    if (isset($recurrence_dates) && count($recurrence_dates) > 0) {
        foreach ($recurrence_dates as $k => $v) {
            add_event_to_db(array('recurrence_id' => $recurrence_id, 'recurrence_start_date' => $v['start_date'], 'recurrence_event_end_date' => $v['event_end_date'], 'registration_start' => $v['registration_start'], 'registration_end' => $v['registration_end']));
        }
    }
    $_REQUEST['event_id'] = !empty($last_event_id) ? $last_event_id : '';
    do_action('action_hook_espresso_insert_event_success', $_REQUEST);
    //If not using the FEM addon, then we return the event id
    if (!$use_fem === TRUE) {
        return @$last_event_id;
    }
}
Ejemplo n.º 16
0
 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();
 }
Ejemplo n.º 17
0
function update_event($recurrence_arr = array())
{
    //print_r($_REQUEST);
    global $wpdb, $org_options, $current_user, $espresso_premium;
    $wpdb->show_errors();
    /*
     * Begin Recurrence handling
     *
     * Will clean up in V 1.2.0
     *
     */
    if (get_option('event_espresso_re_active') == 1) {
        require_once EVENT_ESPRESSO_RECURRENCE_FULL_PATH . "functions/re_functions.php";
        if ($_POST['recurrence_id'] > 0) {
            /*
             * If the array is empty, then find the recurring dates
             */
            if (count($recurrence_arr) == 0) {
                // Prepare the parameters array for use with various RE functions
                $re_params = array('start_date' => $_POST['recurrence_start_date'], 'event_end_date' => $_POST['recurrence_event_end_date'], 'end_date' => $_POST['recurrence_end_date'], 'registration_start' => $_POST['recurrence_regis_start_date'], 'registration_end' => $_POST['recurrence_regis_end_date'], 'frequency' => $_POST['recurrence_frequency'], 'interval' => $_POST['recurrence_interval'], 'recurrence_type' => $_POST['recurrence_type'], 'weekdays' => $_POST['recurrence_weekday'], 'repeat_by' => $_POST['recurrence_repeat_by'], 'recurrence_regis_date_increment' => $_POST['recurrence_regis_date_increment'], 'recurrence_manual_dates' => $_POST['recurrence_manual_dates'], 'recurrence_manual_end_dates' => $_POST['recurrence_manual_end_dates'], 'recurrence_visibility' => $_POST['recurrence_visibility'], 'recurrence_id' => $_POST['recurrence_id']);
                //$re_params['adding_to_db'] = 'Y';
                //Has the form been modified
                $recurrence_form_modified = recurrence_form_modified($re_params);
                //echo ($recurrence_form_modified) ? "Yes" : 'No';
                if ($_POST['recurrence_apply_changes_to'] == 2) {
                    //Update all events in the series based on recurrence id
                    $recurrence_dates = $_POST['recurrence_type'] == 'm' ? find_recurrence_manual_dates($re_params) : find_recurrence_dates($re_params);
                    //$DEL_SQL = 'UPDATE ' . EVENTS_DETAIL_TABLE . " SET event_status = 'D' WHERE start_date NOT IN (" . $delete_in . ") AND recurrence_id = " . $wpdb->escape($_POST['recurrence_id']);
                    $UPDATE_SQL = "SELECT id,start_date,event_identifier FROM " . EVENTS_DETAIL_TABLE . " WHERE recurrence_id = %d AND NOT event_status = 'D'";
                } else {
                    //Update this and upcoming events based on recurrence id and start_date >=start_date
                    $re_params['start_date'] = $_POST['start_date'];
                    $recurrence_dates = find_recurrence_dates($re_params);
                    //$DEL_SQL = 'UPDATE ' . EVENTS_DETAIL_TABLE . " SET event_status = 'D' WHERE start_date >='" . $wpdb->escape($_POST['start_date']) . "' AND start_date NOT IN (" . $delete_in . ") AND recurrence_id = " . $_POST['recurrence_id'];
                    $UPDATE_SQL = "SELECT id,start_date,event_identifier FROM " . EVENTS_DETAIL_TABLE . " WHERE start_date >='" . $wpdb->escape($_POST['start_date']) . "' AND recurrence_id = %d and NOT event_status = 'D' ";
                }
                //Recurrence Form modified and changes need to apply to all
                if ($recurrence_form_modified && $_POST['recurrence_apply_changes_to'] > 1) {
                    //Update the recurrence table record with the new RE selections
                    update_recurrence_master_record();
                    /*
                     * Delete the records that don't belong in the formula
                     */
                    if (count($recurrence_dates) > 0) {
                        $delete_in = '';
                        foreach ($recurrence_dates as $k => $v) {
                            $delete_in .= "'" . $k . "',";
                        }
                        $delete_in = substr($delete_in, 0, -1);
                    }
                    if ($_POST['recurrence_apply_changes_to'] == 2) {
                        //Update all events in the series based on recurrence id
                        //$DEL_SQL = 'UPDATE ' . EVENTS_DETAIL_TABLE . " SET event_status = 'D' WHERE start_date NOT IN (" . $delete_in . ") AND recurrence_id = " . $_POST['recurrence_id'];
                        $DEL_SQL = 'DELETE EDT, EAT FROM ' . EVENTS_DETAIL_TABLE . " EDT\n                            LEFT JOIN " . EVENTS_ATTENDEE_TABLE . " EAT\n                                ON EDT.id = EAT.event_id\n                            WHERE EAT.id IS NULL\n                            AND EDT.start_date NOT IN (" . $delete_in . ")\n                            AND recurrence_id = " . $_POST['recurrence_id'];
                        $UPDATE_SQL = "SELECT id,start_date,event_identifier FROM " . EVENTS_DETAIL_TABLE . " WHERE recurrence_id = %d and NOT event_status = 'D' ORDER BY start_date";
                    } else {
                        //Update this and upcoming events based on recurrence id and start_date >=start_date
                        //$DEL_SQL = 'UPDATE ' . EVENTS_DETAIL_TABLE . " SET event_status = 'D' WHERE start_date >='" . $wpdb->escape($_POST['start_date']) . "' AND start_date NOT IN (" . $delete_in . ") AND recurrence_id = " . $_POST['recurrence_id'];
                        $DEL_SQL = 'DELETE EDT, EAT FROM ' . EVENTS_DETAIL_TABLE . " EDT\n                            LEFT JOIN " . EVENTS_ATTENDEE_TABLE . " EAT\n                                ON EDT.id = EAT.event_id\n                            WHERE EAT.id IS NULL\n                            AND EDT.start_date >='" . $wpdb->escape($_POST['start_date']) . "'\n                            AND start_date NOT IN (" . $delete_in . ")\n                            AND recurrence_id = " . $_POST['recurrence_id'];
                        $UPDATE_SQL = "SELECT id,start_date,event_identifier FROM " . EVENTS_DETAIL_TABLE . " WHERE start_date >='" . $wpdb->escape($_POST['start_date']) . "' AND recurrence_id = %d AND NOT event_status = 'D'  ORDER BY start_date";
                    }
                    if ($delete_in != '') {
                        $wpdb->query($DEL_SQL);
                    }
                    /*
                     * Add the new records based on the new formula
                     * The $recurrence_dates array will contain the new dates
                     */
                    if (!function_exists('add_event_to_db')) {
                        require_once 'insert_event.php';
                    }
                    foreach ($recurrence_dates as $k => $v) {
                        $result = $wpdb->get_row($wpdb->prepare("SELECT ID FROM " . EVENTS_DETAIL_TABLE . " WHERE recurrence_id = %d and start_date = %s and NOT event_status = 'D'", array($_POST['recurrence_id'], $k)));
                        if ($wpdb->num_rows == 0) {
                            add_event_to_db(array('recurrence_id' => $_POST['recurrence_id'], 'recurrence_start_date' => $v['start_date'], 'recurrence_event_end_date' => $v['end_date'], 'recurrence_end_date' => $v['start_date'], 'registration_start' => $v['registration_start'], 'registration_end' => $v['registration_end']));
                        } else {
                        }
                    }
                    /*
                     * Find all the event ids in the series and feed into the $recurrence_dates array
                     * This array will be used at the end of this document to invoke the recursion of update_event function so all the events in the series
                     * can be updated with the information.
                     */
                }
                $result = $wpdb->get_results($wpdb->prepare($UPDATE_SQL, array($_POST['recurrence_id'])));
                foreach ($result as $row) {
                    if ($row->start_date != '') {
                        $recurrence_dates[$row->start_date]['event_id'] = $row->id;
                        $recurrence_dates[$row->start_date]['event_identifier'] = $row->event_identifier;
                    }
                }
            }
        }
    }
    //  echo_f('rd',$recurrence_dates);
    if (defined('EVENT_ESPRESSO_RECURRENCE_MODULE_ACTIVE') && !empty($_POST['recurrence']) && $_POST['recurrence'] == 'Y' && count($recurrence_arr) == 0 && $_POST['recurrence_apply_changes_to'] > 1) {
        //skip the first update
    } else {
        $event_mata = array();
        //will be used to hold event meta data
        $event_id = array_key_exists('event_id', $recurrence_arr) ? $recurrence_arr['event_id'] : $_REQUEST['event_id'];
        $event_name = $_REQUEST['event'];
        //$event_identifier=array_key_exists('event_identifier', $recurrence_arr)?$recurrence_arr['event_identifier']:($_REQUEST['event_identifier'] == '') ? $event_identifier = sanitize_title_with_dashes($event_name.'-'.rand()) : $event_identifier = sanitize_title_with_dashes($_REQUEST['event_identifier']);
        $event_desc = $_REQUEST['event_desc'];
        $display_desc = $_REQUEST['display_desc'];
        $display_reg_form = $_REQUEST['display_reg_form'];
        $reg_limit = $_REQUEST['reg_limit'];
        $allow_multiple = $_REQUEST['allow_multiple'];
        $overflow_event_id = empty($_REQUEST['overflow_event_id']) ? '0' : $_REQUEST['overflow_event_id'];
        $allow_overflow = empty($_REQUEST['allow_overflow']) ? 'N' : $_REQUEST['allow_overflow'];
        $additional_limit = $_REQUEST['additional_limit'];
        //$member_only=$_REQUEST['member_only'];
        $member_only = empty($_REQUEST['member_only']) ? 'N' : $_REQUEST['member_only'];
        $is_active = $_REQUEST['is_active'];
        $event_status = $_REQUEST['event_status'];
        $address = !empty($_REQUEST['address']) ? esc_html($_REQUEST['address']) : '';
        $address2 = !empty($_REQUEST['address2']) ? esc_html($_REQUEST['address2']) : '';
        $city = !empty($_REQUEST['city']) ? esc_html($_REQUEST['city']) : '';
        $state = !empty($_REQUEST['state']) ? esc_html($_REQUEST['state']) : '';
        $zip = !empty($_REQUEST['zip']) ? esc_html($_REQUEST['zip']) : '';
        $country = !empty($_REQUEST['country']) ? esc_html($_REQUEST['country']) : '';
        $phone = !empty($_REQUEST['phone']) ? esc_html($_REQUEST['phone']) : '';
        $externalURL = !empty($_REQUEST['externalURL']) ? esc_html($_REQUEST['externalURL']) : '';
        //$event_location = $address . ' ' . $city . ', ' . $state . ' ' . $zip;
        $event_location = ($address != '' ? $address . ' ' : '') . ($city != '' ? '<br />' . $city : '') . ($state != '' ? ', ' . $state : '') . ($zip != '' ? '<br />' . $zip : '') . ($country != '' ? '<br />' . $country : '');
        //Get the first instance of the start and end times
        $start_time = $_REQUEST['start_time'][0];
        $end_time = $_REQUEST['end_time'][0];
        // Add registration times
        $registration_startT = event_date_display($_REQUEST['registration_startT'], 'H:i');
        $registration_endT = event_date_display($_REQUEST['registration_endT'], 'H:i');
        //Add timezone
        $timezone_string = empty($_REQUEST['timezone_string']) ? '' : $_REQUEST['timezone_string'];
        //Early discounts
        $early_disc = $_REQUEST['early_disc'];
        $early_disc_date = $_REQUEST['early_disc_date'];
        $early_disc_percentage = $_REQUEST['early_disc_percentage'];
        $conf_mail = $_REQUEST['conf_mail'];
        $use_coupon_code = $_REQUEST['use_coupon_code'];
        $alt_email = $_REQUEST['alt_email'];
        $send_mail = $_REQUEST['send_mail'];
        $email_id = empty($_REQUEST['email_name']) ? '' : $_REQUEST['email_name'];
        $event_category = serialize(empty($_REQUEST['event_category']) ? '' : $_REQUEST['event_category']);
        $event_discount = serialize(empty($_REQUEST['event_discount']) ? '' : $_REQUEST['event_discount']);
        $registration_start = array_key_exists('registration_start', $recurrence_arr) ? $recurrence_arr['registration_start'] : $_REQUEST['registration_start'];
        $registration_end = array_key_exists('registration_end', $recurrence_arr) ? $recurrence_arr['registration_end'] : $_REQUEST['registration_end'];
        $start_date = array_key_exists('recurrence_start_date', $recurrence_arr) ? $recurrence_arr['recurrence_start_date'] : ($_REQUEST['start_date'] == '' ? $_REQUEST['recurrence_start_date'] : $_REQUEST['start_date']);
        $end_date = array_key_exists('recurrence_event_end_date', $recurrence_arr) ? $recurrence_arr['recurrence_event_end_date'] : ($_REQUEST['end_date'] == '' ? $_REQUEST['recurrence_start_date'] : $_REQUEST['end_date']);
        $visible_on = array_key_exists('visible_on', $recurrence_arr) ? $recurrence_arr['visible_on'] : empty($_REQUEST['visible_on']) ? '' : $_REQUEST['visible_on'];
        //Venue Information
        $venue_title = isset($_REQUEST['venue_title']) ? $_REQUEST['venue_title'] : '';
        $venue_url = isset($_REQUEST['venue_url']) ? $_REQUEST['venue_url'] : '';
        $venue_phone = isset($_REQUEST['venue_phone']) ? $_REQUEST['venue_phone'] : '';
        $venue_image = isset($_REQUEST['venue_image']) ? $_REQUEST['venue_image'] : '';
        //Virtual location
        $virtual_url = isset($_REQUEST['virtual_url']) ? $_REQUEST['virtual_url'] : '';
        $virtual_phone = isset($_REQUEST['virtual_phone']) ? $_REQUEST['virtual_phone'] : '';
        if (isset($reg_limit) && $reg_limit == '') {
            $reg_limit = 999999;
        }
        $question_groups = serialize($_REQUEST['question_groups']);
        $add_attendee_question_groups = serialize(empty($_REQUEST['add_attendee_question_groups']) ? '' : $_REQUEST['add_attendee_question_groups']);
        $event_mata['default_payment_status'] = $_REQUEST['default_payment_status'];
        $event_mata['venue_id'] = empty($_REQUEST['venue_id']) ? '' : $_REQUEST['venue_id'][0];
        $event_mata['additional_attendee_reg_info'] = $_REQUEST['additional_attendee_reg_info'];
        $event_mata['add_attendee_question_groups'] = empty($_REQUEST['add_attendee_question_groups']) ? '' : $_REQUEST['add_attendee_question_groups'];
        $event_mata['date_submitted'] = $_REQUEST['date_submitted'];
        /*
         * Added for seating chart addon
         */
        if (isset($_REQUEST['seating_chart_id'])) {
            $cls_seating_chart = new seating_chart();
            $seating_chart_result = $cls_seating_chart->associate_event_seating_chart($_REQUEST['seating_chart_id'], $event_id);
            $tmp_seating_chart_id = $_REQUEST['seating_chart_id'];
            if ($tmp_seating_chart_id > 0) {
                if ($seating_chart_result === false) {
                    $tmp_seating_chart_row = $wpdb->get_row("select seating_chart_id from " . EVENTS_SEATING_CHART_EVENT_TABLE . " where event_id = {$event_id}");
                    if ($tmp_seating_chart_row !== NULL) {
                        $tmp_seating_chart_id = $tmp_seating_chart_row->seating_chart_id;
                    } else {
                        $tmp_seating_chart_id = 0;
                    }
                }
                if ($_REQUEST['allow_multiple'] == 'Y' && isset($_REQUEST['seating_chart_id']) && $tmp_seating_chart_id > 0) {
                    $event_mata['additional_attendee_reg_info'] = 3;
                }
            }
        }
        /*
         * End
         */
        if ($_REQUEST['emeta'] != '') {
            foreach ($_REQUEST['emeta'] as $k => $v) {
                $event_mata[$v] = $_REQUEST['emetad'][$k];
            }
        }
        $event_mata = serialize($event_mata);
        ############ Added by wp-developers ######################
        $require_pre_approval = 0;
        if (isset($_REQUEST['require_pre_approval'])) {
            $require_pre_approval = $_REQUEST['require_pre_approval'];
        }
        ################# END #################
        //When adding colums to the following arrays, be sure both arrays have equal values.
        $sql = array('event_name' => $event_name, 'event_desc' => $event_desc, 'display_desc' => $display_desc, 'display_reg_form' => $display_reg_form, 'address' => $address, 'address2' => $address2, 'city' => $city, 'state' => $state, 'zip' => $zip, 'country' => $country, 'phone' => $phone, 'virtual_url' => $virtual_url, 'virtual_phone' => $virtual_phone, 'venue_title' => $venue_title, 'venue_url' => $venue_url, 'venue_phone' => $venue_phone, 'venue_image' => $venue_image, 'registration_start' => $registration_start, 'registration_end' => $registration_end, 'start_date' => $start_date, 'end_date' => $end_date, 'allow_multiple' => $allow_multiple, 'send_mail' => $send_mail, 'is_active' => $is_active, 'event_status' => $event_status, 'conf_mail' => $conf_mail, 'use_coupon_code' => $use_coupon_code, 'member_only' => $member_only, 'externalURL' => $externalURL, 'early_disc' => $early_disc, 'early_disc_date' => $early_disc_date, 'early_disc_percentage' => $early_disc_percentage, 'alt_email' => $alt_email, 'question_groups' => $question_groups, 'allow_overflow' => $allow_overflow, 'overflow_event_id' => $overflow_event_id, 'additional_limit' => $additional_limit, 'reg_limit' => $reg_limit, 'email_id' => $email_id, 'registration_startT' => $registration_startT, 'registration_endT' => $registration_endT, 'event_meta' => $event_mata, 'require_pre_approval' => $require_pre_approval, 'timezone_string' => $timezone_string);
        $sql_data = array('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%s', '%s', '%s', '%s');
        $update_id = array('id' => $event_id);
        /* echo 'Debug: <br />';
           print_r($sql);
           echo '<br />';
           print 'Number of vars: ' . count ($sql);
           echo '<br />';
           print 'Number of cols: ' . count($sql_data); */
        if (function_exists('event_espresso_add_event_to_db_groupon')) {
            $sql = event_espresso_add_event_to_db_groupon($sql, $_REQUEST['use_groupon_code']);
            ///print count ($sql);
            $sql_data = array_merge((array) $sql_data, (array) '%s');
            //print count($sql_data);
            $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
            /* echo 'Debug: <br />';
               print 'Number of vars: ' . count ($sql);
               echo '<br />';
               print 'Number of cols: ' . count($sql_data); */
        } else {
            $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
            /* echo 'Debug: <br />';
               print 'Number of vars: ' . count ($sql);
               echo '<br />';
               print 'Number of cols: ' . count($sql_data); */
        }
        //print $wpdb->print_error();
        $del_cats = "DELETE FROM " . EVENTS_CATEGORY_REL_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($del_cats);
        if (!empty($_REQUEST['event_category'])) {
            foreach ($_REQUEST['event_category'] as $k => $v) {
                if ($v != '') {
                    $sql_cat = "INSERT INTO " . EVENTS_CATEGORY_REL_TABLE . " (event_id, cat_id) VALUES ('" . $event_id . "', '" . $v . "')";
                    //echo "$sql_cat <br>";
                    $wpdb->query($sql_cat);
                }
            }
        }
        $del_ppl = "DELETE FROM " . EVENTS_PERSONNEL_REL_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($del_ppl);
        if (!empty($_REQUEST['event_person'])) {
            foreach ($_REQUEST['event_person'] as $k => $v) {
                if ($v != '') {
                    $sql_ppl = "INSERT INTO " . EVENTS_PERSONNEL_REL_TABLE . " (event_id, person_id) VALUES ('" . $event_id . "', '" . $v . "')";
                    //echo "$sql_ppl <br>";
                    $wpdb->query($sql_ppl);
                }
            }
        }
        $del_venues = "DELETE FROM " . EVENTS_VENUE_REL_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($del_venues);
        if (!empty($_REQUEST['venue_id'])) {
            foreach ($_REQUEST['venue_id'] as $k => $v) {
                if ($v != '' && $v != 0) {
                    $sql_venues = "INSERT INTO " . EVENTS_VENUE_REL_TABLE . " (event_id, venue_id) VALUES ('" . $event_id . "', '" . $v . "')";
                    //echo "$sql_venues <br>";
                    $wpdb->query($sql_venues);
                }
            }
        }
        $del_discounts = "DELETE FROM " . EVENTS_DISCOUNT_REL_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($del_discounts);
        if (!empty($_REQUEST['event_discount'])) {
            foreach ($_REQUEST['event_discount'] as $k => $v) {
                if ($v != '') {
                    $sql_discount = "INSERT INTO " . EVENTS_DISCOUNT_REL_TABLE . " (event_id, discount_id) VALUES ('" . $event_id . "', '" . $v . "')";
                    //echo "$sql_discount <br>";
                    $wpdb->query($sql_discount);
                }
            }
        }
        $del_times = "DELETE FROM " . EVENTS_START_END_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($del_times);
        if ($_REQUEST['start_time'] != '') {
            foreach ($_REQUEST['start_time'] as $k => $v) {
                if ($v != '') {
                    $time_qty = empty($_REQUEST['time_qty'][$k]) ? '0' : "'" . $_REQUEST['time_qty'][$k] . "'";
                    $sql_times = "INSERT INTO " . EVENTS_START_END_TABLE . " (event_id, start_time, end_time, reg_limit) VALUES ('" . $event_id . "', '" . event_date_display($v, 'H:i') . "', '" . event_date_display($_REQUEST['end_time'][$k], 'H:i') . "', " . $time_qty . ")";
                    //echo "$sql_times <br>";
                    $wpdb->query($sql_times);
                }
            }
        }
        $del_prices = "DELETE FROM " . EVENTS_PRICES_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($del_prices);
        if (!empty($_REQUEST['event_cost'])) {
            foreach ($_REQUEST['event_cost'] as $k => $v) {
                if ($v != '') {
                    $price_type = $_REQUEST['price_type'][$k] != '' ? $_REQUEST['price_type'][$k] : __('General Admission', 'event_espresso');
                    $member_price_type = !empty($_REQUEST['member_price_type'][$k]) ? $_REQUEST['member_price_type'][$k] : __('Members Admission', 'event_espresso');
                    $member_price = !empty($_REQUEST['member_price'][$k]) ? $_REQUEST['member_price'][$k] : $v;
                    $sql_prices = "INSERT INTO " . EVENTS_PRICES_TABLE . " (event_id, event_cost, surcharge, surcharge_type, price_type, member_price, member_price_type) VALUES ('" . $event_id . "', '" . $v . "', '" . $_REQUEST['surcharge'][$k] . "', '" . $_REQUEST['surcharge_type'][$k] . "', '" . $price_type . "', '" . $member_price . "', '" . $member_price_type . "')";
                    //echo "$sql_prices <br>";
                    $wpdb->query($sql_prices);
                }
            }
        } else {
            $sql_price = "INSERT INTO " . EVENTS_PRICES_TABLE . " (event_id, event_cost, surcharge, price_type, member_price, member_price_type) VALUES ('" . $event_id . "', '0.00', '0.00', '" . __('Free', 'event_espresso') . "', '0.00', '" . __('Free', 'event_espresso') . "')";
            if (!$wpdb->query($sql_price)) {
                $error = true;
            }
        }
        ############# MailChimp Integration ###############
        if (get_option('event_mailchimp_active') == 'true' && $espresso_premium == true) {
            MailChimpController::update_event_list_rel($event_id);
        }
        if (function_exists('espresso_fb_createevent') == 'true' && $espresso_premium == true) {
            espresso_fb_updateevent($event_id);
        }
        /// Create Event Post Code Here
        switch ($_REQUEST['create_post']) {
            case $_REQUEST['create_post'] == 'N':
                $sql = " SELECT * FROM " . EVENTS_DETAIL_TABLE;
                $sql .= " WHERE id = '" . $event_id . "' ";
                $wpdb->get_results($sql);
                $post_id = $wpdb->last_result[0]->post_id;
                if ($wpdb->num_rows > 0 && !empty($_REQUEST['delete_post']) && $_REQUEST['delete_post'] == 'Y') {
                    $sql = array('post_id' => '', 'post_type' => '');
                    $sql_data = array('%d', '%s');
                    $update_id = array('id' => $event_id);
                    $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
                    wp_delete_post($post_id, 'true');
                }
                break;
            case $_REQUEST['create_post'] == 'Y':
                $post_type = $_REQUEST['espresso_post_type'];
                if ($post_type == 'post') {
                    if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php") || file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . "templates/event_post.php")) {
                        // Load message from template into message post variable
                        ob_start();
                        if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php")) {
                            require_once EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php";
                        } else {
                            require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/event_post.php";
                        }
                        $post_content = ob_get_contents();
                        ob_end_clean();
                    } else {
                        _e('There was error finding a post template. Please verify your post templates are available.', 'event_espresso');
                    }
                } elseif ($post_type == 'espresso_event') {
                    ob_start();
                    echo $event_desc;
                    $post_content = ob_get_contents();
                    ob_end_clean();
                }
                $my_post = array();
                $sql = " SELECT * FROM " . EVENTS_DETAIL_TABLE;
                $sql .= " WHERE id = '" . $event_id . "' ";
                $wpdb->get_results($sql);
                $post_id = $wpdb->last_result[0]->post_id;
                $post_type = $_REQUEST['espresso_post_type'];
                if ($post_id > 0) {
                    $my_post['ID'] = $post_id;
                }
                $my_post['post_title'] = esc_html($_REQUEST['event']);
                $my_post['post_content'] = $post_content;
                $my_post['post_status'] = 'publish';
                $my_post['post_author'] = $_REQUEST['user'];
                $my_post['post_category'] = $_REQUEST['post_category'];
                //print_r ($my_post['post_category']);
                $my_post['tags_input'] = $_REQUEST['post_tags'];
                $my_post['post_type'] = $post_type;
                //print_r($my_post);
                // Insert the post into the database
                if ($post_id > 0) {
                    $post_id = wp_update_post($my_post);
                    update_post_meta($post_id, 'event_id', $event_id);
                    update_post_meta($post_id, 'event_identifier', $event_identifier);
                    update_post_meta($post_id, 'event_start_date', $start_date);
                    update_post_meta($post_id, 'event_end_date', $end_date);
                    update_post_meta($post_id, 'event_location', $event_location);
                    update_post_meta($post_id, 'virtual_url', $virtual_url);
                    update_post_meta($post_id, 'virtual_phone', $virtual_phone);
                    //
                    update_post_meta($post_id, 'event_address', $address);
                    update_post_meta($post_id, 'event_address2', $address2);
                    update_post_meta($post_id, 'event_city', $city);
                    update_post_meta($post_id, 'event_state', $state);
                    update_post_meta($post_id, 'event_country', $country);
                    update_post_meta($post_id, 'event_phone', $phone);
                    update_post_meta($post_id, 'venue_title', $venue_title);
                    update_post_meta($post_id, 'venue_url', $venue_url);
                    update_post_meta($post_id, 'venue_phone', $venue_phone);
                    update_post_meta($post_id, 'venue_image', $venue_image);
                    update_post_meta($post_id, 'event_externalURL', $externalURL);
                    update_post_meta($post_id, 'event_reg_limit', $reg_limit);
                    update_post_meta($post_id, 'event_start_time', time_to_24hr($start_time));
                    update_post_meta($post_id, 'event_end_time', time_to_24hr($end_time));
                    update_post_meta($post_id, 'event_registration_start', $registration_start);
                    update_post_meta($post_id, 'event_registration_end', $registration_end);
                    update_post_meta($post_id, 'event_registration_startT', $registration_startT);
                    update_post_meta($post_id, 'event_registration_endT', $registration_endT);
                    //update_post_meta( $post_id, 'timezone_string', $timezone_string );
                } else {
                    $post_id = wp_insert_post($my_post);
                    add_post_meta($post_id, 'event_id', $event_id);
                    add_post_meta($post_id, 'event_identifier', $event_identifier);
                    add_post_meta($post_id, 'event_start_date', $start_date);
                    add_post_meta($post_id, 'event_end_date', $end_date);
                    add_post_meta($post_id, 'event_location', $event_location);
                    add_post_meta($post_id, 'virtual_url', $virtual_url);
                    add_post_meta($post_id, 'virtual_phone', $virtual_phone);
                    //
                    add_post_meta($post_id, 'event_address', $address);
                    add_post_meta($post_id, 'event_address2', $address2);
                    add_post_meta($post_id, 'event_city', $city);
                    add_post_meta($post_id, 'event_state', $state);
                    add_post_meta($post_id, 'event_country', $country);
                    add_post_meta($post_id, 'event_phone', $phone);
                    add_post_meta($post_id, 'venue_title', $venue_title);
                    add_post_meta($post_id, 'venue_url', $venue_url);
                    add_post_meta($post_id, 'venue_phone', $venue_phone);
                    add_post_meta($post_id, 'venue_image', $venue_image);
                    add_post_meta($post_id, 'event_externalURL', $externalURL);
                    add_post_meta($post_id, 'event_reg_limit', $reg_limit);
                    add_post_meta($post_id, 'event_start_time', time_to_24hr($start_time));
                    add_post_meta($post_id, 'event_end_time', time_to_24hr($end_time));
                    add_post_meta($post_id, 'event_registration_start', $registration_start);
                    add_post_meta($post_id, 'event_registration_end', $registration_end);
                    add_post_meta($post_id, 'event_registration_startT', $registration_startT);
                    add_post_meta($post_id, 'event_registration_endT', $registration_endT);
                    //add_post_meta( $post_id, 'timezone_string', $timezone_string );
                }
                // Store the POST ID so it can be displayed on the edit page
                $sql = array('post_id' => $post_id, 'post_type' => $post_type);
                $sql_data = array('%d', '%s');
                $update_id = array('id' => $event_id);
                $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
                break;
        }
        ?>
        <div id="message" class="updated fade"><p><strong><?php 
        _e('Event details updated for', 'event_espresso');
        ?>
 <a href="<?php 
        echo espresso_reg_url($event_id);
        ?>
" target="_blank"><?php 
        echo stripslashes_deep($_REQUEST['event']);
        ?>
 for <?php 
        echo date("m/d/Y", strtotime($start_date));
        ?>
</a>.</strong></p></div>
        
        <?php 
        /*
         * Added for seating chart addon
         */
        if (isset($seating_chart_result) && $seating_chart_result === false) {
            ?>
        <p>Failed to associate new seating chart with this event. (Seats from current seating chart might have been used by some attendees)</p>
        <?php 
        }
        /*
         * End
         */
        ?>
   
        
        <?php 
    }
    /*
     * With the recursion of this function, additional recurring events will be updated
     */
    if (isset($recurrence_dates) && count($recurrence_dates) > 0 && $_POST['recurrence_apply_changes_to'] > 1) {
        //$recurrence_dates = array_shift($recurrence_dates); //Remove the first item from the array since it will be added after this recursion
        foreach ($recurrence_dates as $r_d) {
            if ($r_d['event_id'] != '' && count($r_d) > 2) {
                update_event(array('event_id' => $r_d['event_id'], 'event_identifier' => $r_d['event_identifier'], 'recurrence_id' => $r_d['recurrence_id'], 'recurrence_start_date' => $r_d['start_date'], 'recurrence_event_end_date' => $r_d['event_end_date'], 'registration_start' => $r_d['registration_start'], 'registration_end' => $r_d['registration_end'], 'visible_on' => $r_d['visible_on']));
            }
        }
    }
    /*
     * End recursion, as part of recurring events.
     */
}
Ejemplo n.º 18
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 espresso_prepare_event_link
 * @param array $payment_data
 * attendee_session
 * @return array $payment_data
 * event_link
 */
function espresso_prepare_event_link($payment_data)
{
    global $wpdb;
    $sql = "SELECT  ea.event_id, ed.event_name FROM " . EVENTS_ATTENDEE_TABLE . " ea";
    $sql .= " JOIN " . EVENTS_DETAIL_TABLE . " ed ON ed.id=ea.event_id";
    $sql .= " WHERE ea.attendee_session='" . $payment_data['attendee_session'] . "'";
    $events = $wpdb->get_results($sql, OBJECT_K);
    $payment_data['event_link'] = '';
    foreach ($events as $event) {
        $event_url = espresso_reg_url($event->event_id);
        $payment_data['event_link'] .= '<a href="' . $event_url . '">' . $event->event_name . '</a><br />';
    }
    return $payment_data;
}
    ?>
 </span><?php 
    echo get_number_of_attendees_reg_limit($event_id, 'available_spaces', 'All Seats Reserved');
    ?>
</p>
        <?php 
    if ($overflow_event_id != '0' && $allow_overflow == 'Y') {
        ?>
            <p id="register_link-<?php 
        echo $overflow_event_id;
        ?>
" class="register-link-footer"><a class="a_register_link" 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 
    }
} else {
    if ($display_reg_form == 'Y' && $externalURL == '') {
        ?>
			<p id="available_spaces-<?php 
        echo $event_id;
    function espresso_google_button($event_id)
    {
        global $wpdb, $org_options, $espresso_google;
        $registration_url = espresso_reg_url($event_id);
        //get_option('siteurl') . '/?ee='. $event_id;
        $g_button = '<div class="g-plusone" href="' . $registration_url . '" data-href="' . $registration_url . '" data-size="' . $espresso_google['espresso_google_button_size'] . '"></div>';
        $g_button .= '<script type="text/javascript">
  		(function() {
    		var po = document.createElement(\'script\'); po.type = \'text/javascript\'; po.async = true; ';
        if (is_ssl()) {
            $g_button .= 'po.src = \'https://apis.google.com/js/plusone.js\';';
        } else {
            $g_button .= 'po.src = \'http://apis.google.com/js/plusone.js\';';
            // only load https address if we're using ssl on the page
        }
        $g_button .= 'var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(po, s);
  		})();
			</script>';
        return $g_button;
    }
Ejemplo n.º 23
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 update_event($recurrence_arr = array())
{
    //print_r($_REQUEST);
    global $wpdb, $org_options, $current_user, $espresso_premium;
    //Security check using nonce
    if (empty($_POST['nonce_verify_update_event']) || !wp_verify_nonce($_POST['nonce_verify_update_event'], 'espresso_verify_update_event_nonce')) {
        if ($recurrence_arr['bypass_nonce'] == FALSE) {
            print '<h3 class="error">' . __('Sorry, there was a security error and your event was not updated.', 'event_espresso') . '</h3>';
            return;
        }
    }
    $wpdb->show_errors();
    /*
     * Begin Recurrence handling
     *
     * Will clean up in V 1.2.0
     *
     */
    if (defined('EVENT_ESPRESSO_RECURRENCE_TABLE')) {
        require_once EVENT_ESPRESSO_RECURRENCE_FULL_PATH . "functions/re_functions.php";
        if ($_POST['recurrence_id'] > 0) {
            /*
             * If the array is empty, then find the recurring dates
             */
            if (count($recurrence_arr) == 0) {
                // Prepare the parameters array for use with various RE functions
                $re_params = array('start_date' => !empty($_POST['recurrence_start_date']) ? sanitize_text_field($_POST['recurrence_start_date']) : '', 'event_end_date' => !empty($_POST['recurrence_event_end_date']) ? sanitize_text_field($_POST['recurrence_event_end_date']) : '', 'end_date' => !empty($_POST['recurrence_end_date']) ? sanitize_text_field($_POST['recurrence_end_date']) : '', 'registration_start' => !empty($_POST['recurrence_regis_start_date']) ? sanitize_text_field($_POST['recurrence_regis_start_date']) : '', 'registration_end' => !empty($_POST['recurrence_regis_end_date']) ? sanitize_text_field($_POST['recurrence_regis_end_date']) : '', 'frequency' => !empty($_POST['recurrence_frequency']) ? sanitize_text_field($_POST['recurrence_frequency']) : '', 'interval' => !empty($_POST['recurrence_interval']) ? sanitize_text_field($_POST['recurrence_interval']) : '', 'recurrence_type' => !empty($_POST['recurrence_type']) ? sanitize_text_field($_POST['recurrence_type']) : '', 'weekdays' => !empty($_POST['recurrence_weekday']) ? $_POST['recurrence_weekday'] : '', 'repeat_by' => !empty($_POST['recurrence_repeat_by']) ? $_POST['recurrence_repeat_by'] : '', 'recurrence_manual_dates' => !empty($_POST['recurrence_manual_dates']) ? $_POST['recurrence_manual_dates'] : '', 'recurrence_manual_end_dates' => !empty($_POST['recurrence_manual_end_dates']) ? $_POST['recurrence_manual_end_dates'] : '', 'recurrence_id' => !empty($_POST['recurrence_id']) ? $_POST['recurrence_id'] : '', 'recurrence_regis_date_increment' => !empty($_POST['recurrence_regis_date_increment']) ? $_POST['recurrence_regis_date_increment'] : '');
                //$re_params['adding_to_db'] = 'Y';
                //Has the form been modified
                $recurrence_form_modified = recurrence_form_modified($re_params);
                //echo ($recurrence_form_modified) ? "Yes" : 'No';
                if ($_POST['recurrence_apply_changes_to'] == 2) {
                    //Update all events in the series based on recurrence id
                    $recurrence_dates = $_POST['recurrence_type'] == 'm' ? find_recurrence_manual_dates($re_params) : find_recurrence_dates($re_params);
                    $UPDATE_SQL = "SELECT id,start_date,event_identifier FROM " . EVENTS_DETAIL_TABLE . " WHERE recurrence_id = %d AND NOT event_status = 'D'";
                } else {
                    //Update this and upcoming events based on recurrence id and start_date >=start_date
                    $re_params['start_date'] = sanitize_text_field($_POST['start_date']);
                    $recurrence_dates = find_recurrence_dates($re_params);
                    $UPDATE_SQL = "SELECT id,start_date,event_identifier FROM " . EVENTS_DETAIL_TABLE . " WHERE start_date >='" . sanitize_text_field($_POST['start_date']) . "' AND recurrence_id = %d and NOT event_status = 'D' ";
                }
                //Recurrence Form modified and changes need to apply to all
                if ($recurrence_form_modified && $_POST['recurrence_apply_changes_to'] > 1) {
                    //Update the recurrence table record with the new RE selections
                    update_recurrence_master_record();
                    /*
                     * Delete the records that don't belong in the formula
                     */
                    if (count($recurrence_dates) > 0) {
                        $delete_in = '';
                        foreach ($recurrence_dates as $k => $v) {
                            $delete_in .= "'" . $k . "',";
                        }
                        $delete_in = substr($delete_in, 0, -1);
                    }
                    if ($_POST['recurrence_apply_changes_to'] == 2) {
                        //Update all events in the series based on recurrence id
                        //$DEL_SQL = 'UPDATE ' . EVENTS_DETAIL_TABLE . " SET event_status = 'D' WHERE start_date NOT IN (" . $delete_in . ") AND recurrence_id = " . $_POST['recurrence_id'];
                        $DEL_SQL = 'DELETE EDT, EAT FROM ' . EVENTS_DETAIL_TABLE . " EDT\n                            LEFT JOIN " . EVENTS_ATTENDEE_TABLE . " EAT\n                                ON EDT.id = EAT.event_id\n                            WHERE EAT.id IS NULL\n                            AND EDT.start_date NOT IN (" . $delete_in . ")\n                            AND recurrence_id = " . sanitize_text_field($_POST['recurrence_id']);
                        $UPDATE_SQL = "SELECT id,start_date,event_identifier FROM " . EVENTS_DETAIL_TABLE . " WHERE recurrence_id = %d and NOT event_status = 'D' ORDER BY start_date";
                    } else {
                        $DEL_SQL = 'DELETE EDT, EAT FROM ' . EVENTS_DETAIL_TABLE . " EDT\n                            LEFT JOIN " . EVENTS_ATTENDEE_TABLE . " EAT\n                                ON EDT.id = EAT.event_id\n                            WHERE EAT.id IS NULL\n                            AND EDT.start_date >='" . esc_sql(sanitize_text_field($_POST['start_date'])) . "'\n                            AND EDT.start_date NOT IN (" . $delete_in . ")\n                            AND recurrence_id = " . $_POST['recurrence_id'];
                        $UPDATE_SQL = "SELECT id,start_date,event_identifier FROM " . EVENTS_DETAIL_TABLE . " WHERE start_date >='" . sanitize_text_field($_POST['start_date']) . "' AND recurrence_id = %d AND NOT event_status = 'D'  ORDER BY start_date";
                    }
                    if ($delete_in != '') {
                        $wpdb->query($wpdb->prepare($DEL_SQL, NULL));
                    }
                    /*
                     * Add the new records based on the new formula
                     * The $recurrence_dates array will contain the new dates
                     */
                    if (!function_exists('add_event_to_db')) {
                        require_once 'insert_event.php';
                    }
                    foreach ($recurrence_dates as $k => $v) {
                        $result = $wpdb->get_row($wpdb->prepare("SELECT ID FROM " . EVENTS_DETAIL_TABLE . " WHERE recurrence_id = %d and start_date = %s and NOT event_status = 'D'", array($_POST['recurrence_id'], $k)));
                        if ($wpdb->num_rows == 0) {
                            add_event_to_db(array('recurrence_id' => sanitize_text_field($_POST['recurrence_id']), 'recurrence_start_date' => $v['start_date'], 'recurrence_event_end_date' => $v['event_end_date'], 'recurrence_end_date' => $v['start_date'], 'registration_start' => $v['registration_start'], 'registration_end' => $v['registration_end'], 'bypass_nonce' => TRUE));
                        } else {
                        }
                    }
                    /*
                     * Find all the event ids in the series and feed into the $recurrence_dates array
                     * This array will be used at the end of this document to invoke the recursion of update_event function so all the events in the series
                     * can be updated with the information.
                     */
                }
                $result = $wpdb->get_results($wpdb->prepare($UPDATE_SQL, array(sanitize_text_field($_POST['recurrence_id']))));
                foreach ($result as $row) {
                    if ($row->start_date != '') {
                        $recurrence_dates[$row->start_date]['event_id'] = $row->id;
                        $recurrence_dates[$row->start_date]['event_identifier'] = $row->event_identifier;
                    }
                }
            }
        }
    }
    //  echo_f('rd',$recurrence_dates);
    if (defined('EVENT_ESPRESSO_RECURRENCE_MODULE_ACTIVE') && !empty($_POST['recurrence']) && $_POST['recurrence'] == 'Y' && count($recurrence_arr) == 0 && $_POST['recurrence_apply_changes_to'] > 1) {
        //skip the first update
    } else {
        //Filters the event description based on user level
        $user_access = apply_filters('filter_hook_espresso_event_unfiltered_description', current_user_can('administrator'));
        $_REQUEST['event_desc'] = is_admin() || $user_access ? $_REQUEST['event_desc'] : apply_filters('filter_hook_espresso_event_wp_kses_post_description', wp_kses_post($_REQUEST['event_desc']));
        $event_meta = array();
        //will be used to hold event meta data
        $event_id = array_key_exists('event_id', $recurrence_arr) ? $recurrence_arr['event_id'] : (int) $_REQUEST['event_id'];
        $event_name = sanitize_text_field($_REQUEST['event']);
        $event_desc = !empty($_REQUEST['event_desc']) ? $_REQUEST['event_desc'] : '';
        $display_desc = sanitize_text_field($_REQUEST['display_desc']);
        $display_reg_form = sanitize_text_field($_REQUEST['display_reg_form']);
        $externalURL = !empty($_REQUEST['externalURL']) ? esc_html($_REQUEST['externalURL']) : '';
        $reg_limit = (int) $_REQUEST['reg_limit'];
        $allow_multiple = $_REQUEST['allow_multiple'];
        $overflow_event_id = empty($_REQUEST['overflow_event_id']) ? '0' : (int) $_REQUEST['overflow_event_id'];
        $allow_overflow = empty($_REQUEST['allow_overflow']) ? 'N' : sanitize_text_field($_REQUEST['allow_overflow']);
        $additional_limit = !empty($_REQUEST['additional_limit']) && $_REQUEST['additional_limit'] > 0 ? (int) $_REQUEST['additional_limit'] : '5';
        $member_only = empty($_REQUEST['member_only']) ? 'N' : sanitize_text_field($_REQUEST['member_only']);
        $is_active = !empty($_REQUEST['is_active']) ? sanitize_text_field($_REQUEST['is_active']) : 'Y';
        $event_status = !empty($_REQUEST['event_status']) ? sanitize_text_field($_REQUEST['event_status']) : 'A';
        //Get the first instance of the start and end times
        $start_time = sanitize_text_field($_REQUEST['start_time'][0]);
        $end_time = sanitize_text_field($_REQUEST['end_time'][0]);
        // Add registration times
        $registration_startT = event_date_display(sanitize_text_field($_REQUEST['registration_startT']), 'H:i');
        $registration_endT = event_date_display(sanitize_text_field($_REQUEST['registration_endT']), 'H:i');
        //Add timezone
        $timezone_string = empty($_REQUEST['timezone_string']) ? '' : sanitize_text_field($_REQUEST['timezone_string']);
        //Early discounts
        $early_disc = !empty($_REQUEST['early_disc']) ? sanitize_text_field($_REQUEST['early_disc']) : '';
        $early_disc_date = !empty($_REQUEST['early_disc_date']) ? sanitize_text_field($_REQUEST['early_disc_date']) : '';
        $early_disc_percentage = !empty($_REQUEST['early_disc_percentage']) ? sanitize_text_field($_REQUEST['early_disc_percentage']) : '';
        $conf_mail = esc_html($_REQUEST['conf_mail']);
        $use_coupon_code = !empty($_REQUEST['use_coupon_code']) ? sanitize_text_field($_REQUEST['use_coupon_code']) : '';
        $alt_email = isset($_REQUEST['alt_email']) && !empty($_REQUEST['alt_email']) ? sanitize_text_field($_REQUEST['alt_email']) : '';
        $send_mail = sanitize_text_field($_REQUEST['send_mail']);
        $email_id = isset($_REQUEST['email_name']) ? (int) $_REQUEST['email_name'] : '0';
        $ticket_id = isset($_REQUEST['ticket_id']) ? (int) $_REQUEST['ticket_id'] : '0';
        $event_category = empty($_REQUEST['event_category']) ? '' : serialize(sanitize_text_field($_REQUEST['event_category']));
        $event_discount = empty($_REQUEST['event_discount']) ? '' : serialize(sanitize_text_field($_REQUEST['event_discount']));
        $registration_start = array_key_exists('registration_start', $recurrence_arr) ? $recurrence_arr['registration_start'] : sanitize_text_field($_REQUEST['registration_start']);
        $registration_end = array_key_exists('registration_end', $recurrence_arr) ? $recurrence_arr['registration_end'] : sanitize_text_field($_REQUEST['registration_end']);
        $start_date = array_key_exists('recurrence_start_date', $recurrence_arr) ? $recurrence_arr['recurrence_start_date'] : (empty($_REQUEST['start_date']) ? $_REQUEST['recurrence_start_date'] : sanitize_text_field($_REQUEST['start_date']));
        $end_date = array_key_exists('recurrence_event_end_date', $recurrence_arr) ? $recurrence_arr['recurrence_event_end_date'] : (empty($_REQUEST['end_date']) ? sanitize_text_field($_REQUEST['recurrence_start_date']) : sanitize_text_field($_REQUEST['end_date']));
        $question_groups = serialize($_REQUEST['question_groups']);
        $add_attendee_question_groups = empty($_REQUEST['add_attendee_question_groups']) ? '' : $_REQUEST['add_attendee_question_groups'];
        //Venue Information
        $venue_title = isset($_REQUEST['venue_title']) ? sanitize_text_field($_REQUEST['venue_title']) : '';
        $venue_url = isset($_REQUEST['venue_url']) ? sanitize_text_field($_REQUEST['venue_url']) : '';
        $venue_phone = isset($_REQUEST['venue_phone']) ? sanitize_text_field($_REQUEST['venue_phone']) : '';
        $venue_image = isset($_REQUEST['venue_image']) ? sanitize_text_field($_REQUEST['venue_image']) : '';
        //Virtual location
        $virtual_url = isset($_REQUEST['virtual_url']) ? sanitize_text_field($_REQUEST['virtual_url']) : '';
        $virtual_phone = isset($_REQUEST['virtual_phone']) ? sanitize_text_field($_REQUEST['virtual_phone']) : '';
        //Address/venue information
        $address = !empty($_REQUEST['address']) ? sanitize_text_field($_REQUEST['address']) : '';
        $address2 = !empty($_REQUEST['address2']) ? sanitize_text_field($_REQUEST['address2']) : '';
        $city = !empty($_REQUEST['city']) ? sanitize_text_field($_REQUEST['city']) : '';
        $state = !empty($_REQUEST['state']) ? sanitize_text_field($_REQUEST['state']) : '';
        $zip = !empty($_REQUEST['zip']) ? sanitize_text_field($_REQUEST['zip']) : '';
        $country = !empty($_REQUEST['country']) ? sanitize_text_field($_REQUEST['country']) : '';
        $phone = !empty($_REQUEST['phone']) ? sanitize_text_field($_REQUEST['phone']) : '';
        $event_location = '';
        if (!empty($address)) {
            $event_location .= $address . ' ';
        }
        if (!empty($address2)) {
            $event_location .= '<br />' . $address2;
        }
        if (!empty($city)) {
            $event_location .= '<br />' . $city;
        }
        if (!empty($state)) {
            $event_location .= ', ' . $state;
        }
        if (!empty($zip)) {
            $event_location .= ', ' . $state;
        }
        if (!empty($country)) {
            $event_location .= '<br />' . $country;
        }
        if (isset($reg_limit) && empty($reg_limit)) {
            $reg_limit = 999999;
        }
        $event_meta['default_payment_status'] = !empty($_REQUEST['default_payment_status']) ? sanitize_text_field($_REQUEST['default_payment_status']) : '';
        $event_meta['venue_id'] = empty($_REQUEST['venue_id']) ? '' : (int) $_REQUEST['venue_id'][0];
        $event_meta['additional_attendee_reg_info'] = !empty($_REQUEST['additional_attendee_reg_info']) ? sanitize_text_field($_REQUEST['additional_attendee_reg_info']) : '';
        $event_meta['add_attendee_question_groups'] = $add_attendee_question_groups;
        $event_meta['date_submitted'] = sanitize_text_field($_REQUEST['date_submitted']);
        //Added for seating chart addon
        if (isset($_REQUEST['seating_chart_id'])) {
            $cls_seating_chart = new seating_chart();
            $seating_chart_result = $cls_seating_chart->associate_event_seating_chart((int) $_REQUEST['seating_chart_id'], $event_id);
            $tmp_seating_chart_id = (int) $_REQUEST['seating_chart_id'];
            if ($tmp_seating_chart_id > 0) {
                if ($seating_chart_result === false) {
                    $tmp_seating_chart_row = $wpdb->get_row($wpdb->prepare("select seating_chart_id from " . EVENTS_SEATING_CHART_EVENT_TABLE . " where event_id = {$event_id}", NULL));
                    if ($tmp_seating_chart_row !== NULL) {
                        $tmp_seating_chart_id = $tmp_seating_chart_row->seating_chart_id;
                    } else {
                        $tmp_seating_chart_id = 0;
                    }
                }
                if ($_REQUEST['allow_multiple'] == 'Y' && isset($_REQUEST['seating_chart_id']) && $tmp_seating_chart_id > 0) {
                    $event_meta['additional_attendee_reg_info'] = 3;
                }
            }
        }
        //Process thumbnail image
        $event_thumbnail_url = '';
        if (isset($_REQUEST['upload_image']) && !empty($_REQUEST['upload_image'])) {
            $event_meta['event_thumbnail_url'] = sanitize_text_field($_REQUEST['upload_image']);
            $event_thumbnail_url = sanitize_text_field($event_meta['event_thumbnail_url']);
        }
        if (!empty($_REQUEST['emeta'])) {
            foreach ($_REQUEST['emeta'] as $k => $v) {
                $event_meta[$v] = sanitize_text_field($_REQUEST['emetad'][$k]);
            }
        }
        //Filter to update the event meta as needed
        $event_meta = apply_filters('filter_hook_espresso_update_event_update_meta', $event_meta, $event_id);
        //print_r($_REQUEST['emeta'] );
        $event_meta = serialize($event_meta);
        ############ Added by wp-developers ######################
        $require_pre_approval = 0;
        if (isset($_REQUEST['require_pre_approval'])) {
            $require_pre_approval = sanitize_text_field($_REQUEST['require_pre_approval']);
        }
        ################# END #################
        //When adding colums to the following arrays, be sure both arrays have equal values.
        $sql = array('event_name' => $event_name, 'event_desc' => $event_desc, 'display_desc' => $display_desc, 'display_reg_form' => $display_reg_form, 'address' => $address, 'address2' => $address2, 'city' => $city, 'state' => $state, 'zip' => $zip, 'country' => $country, 'phone' => $phone, 'virtual_url' => $virtual_url, 'virtual_phone' => $virtual_phone, 'venue_title' => $venue_title, 'venue_url' => $venue_url, 'venue_phone' => $venue_phone, 'venue_image' => $venue_image, 'registration_start' => $registration_start, 'registration_end' => $registration_end, 'start_date' => $start_date, 'end_date' => $end_date, 'allow_multiple' => $allow_multiple, 'send_mail' => $send_mail, 'is_active' => $is_active, 'event_status' => $event_status, 'conf_mail' => $conf_mail, 'use_coupon_code' => $use_coupon_code, 'member_only' => $member_only, 'externalURL' => $externalURL, 'early_disc' => $early_disc, 'early_disc_date' => $early_disc_date, 'early_disc_percentage' => $early_disc_percentage, 'alt_email' => $alt_email, 'question_groups' => $question_groups, 'allow_overflow' => $allow_overflow, 'overflow_event_id' => $overflow_event_id, 'additional_limit' => $additional_limit, 'reg_limit' => $reg_limit, 'email_id' => $email_id, 'registration_startT' => $registration_startT, 'registration_endT' => $registration_endT, 'event_meta' => $event_meta, 'require_pre_approval' => $require_pre_approval, 'timezone_string' => $timezone_string, 'ticket_id' => $ticket_id);
        $sql_data = array('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%s', '%s', '%s', '%s', '%d');
        $update_id = array('id' => $event_id);
        /* echo 'Debug: <br />';
           print_r($sql);
           echo '<br />';
           print 'Number of vars: ' . count ($sql);
           echo '<br />';
           print 'Number of cols: ' . count($sql_data); */
        if (function_exists('event_espresso_add_event_to_db_groupon')) {
            $sql = event_espresso_add_event_to_db_groupon($sql, $_REQUEST['use_groupon_code']);
            ///print count ($sql);
            $sql_data = array_merge((array) $sql_data, (array) '%s');
            //print count($sql_data);
            $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
            /* echo 'Debug: <br />';
               print 'Number of vars: ' . count ($sql);
               echo '<br />';
               print 'Number of cols: ' . count($sql_data); */
        } else {
            $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
            /* echo 'Debug: <br />';
               print 'Number of vars: ' . count ($sql);
               echo '<br />';
               print 'Number of cols: ' . count($sql_data); */
        }
        //print $wpdb->print_error();
        //BEGIN CATEGORY MODIFICATION
        //We first delete the previous entry then we get the category id's of the event and put them in events_detail_table.category_id as a well-formatted string (id,n id)
        $del_cats = "DELETE FROM " . EVENTS_CATEGORY_REL_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($wpdb->prepare($del_cats, NULL));
        $update_event_detail_category_id = "UPDATE " . EVENTS_DETAIL_TABLE . " SET category_id = NULL WHERE id='" . $event_id . "'";
        $wpdb->query($wpdb->prepare($update_event_detail_category_id, NULL));
        $string_cat = '';
        if (!empty($_REQUEST['event_category'])) {
            foreach ($_REQUEST['event_category'] as $k => $v) {
                if (!empty($v)) {
                    $sql_cat = "INSERT INTO " . EVENTS_CATEGORY_REL_TABLE . " (event_id, cat_id) VALUES ('" . $event_id . "', '" . (int) $v . "')";
                    $wpdb->query($wpdb->prepare($sql_cat, array()));
                    $string_cat .= sanitize_text_field($v) . ",";
                }
            }
            if (!empty($string_cat) && $string_cat != ",") {
                $cleaned_string_cat = substr($string_cat, 0, -1);
                $tmp = explode(",", $cleaned_string_cat);
                sort($tmp);
                $cleaned_string_cat = implode(",", $tmp);
                trim($cleaned_string_cat);
                $sql_update_event_detail_category_id = "UPDATE " . EVENTS_DETAIL_TABLE . " SET category_id = '" . $cleaned_string_cat . "' WHERE id='" . $event_id . "'";
                $wpdb->query($wpdb->prepare($sql_update_event_detail_category_id, NULL));
            }
        }
        //END CATEGORY MODIFICATION
        //Staff
        $update_all_staff = FALSE;
        if (isset($_POST['rem_apply_to_all_staff']) && $_POST['recurrence_apply_changes_to'] == 2) {
            $update_all_staff = TRUE;
        }
        if ($_POST['event_id'] == $event_id || $update_all_staff == TRUE) {
            $del_ppl = "DELETE FROM " . EVENTS_PERSONNEL_REL_TABLE . " WHERE event_id = '" . $event_id . "'";
            $wpdb->query($wpdb->prepare($del_ppl, NULL));
            if (!empty($_REQUEST['event_person'])) {
                foreach ($_REQUEST['event_person'] as $k => $v) {
                    if (!empty($v)) {
                        $sql_ppl = "INSERT INTO " . EVENTS_PERSONNEL_REL_TABLE . " (event_id, person_id) VALUES ('" . $event_id . "', '" . (int) $v . "')";
                        $wpdb->query($wpdb->prepare($sql_ppl, array()));
                    }
                }
            }
        }
        //Venues
        $del_venues = "DELETE FROM " . EVENTS_VENUE_REL_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($wpdb->prepare($del_venues, NULL));
        if (!empty($_REQUEST['venue_id'])) {
            foreach ($_REQUEST['venue_id'] as $k => $v) {
                if (!empty($v) && $v != 0) {
                    $sql_venues = "INSERT INTO " . EVENTS_VENUE_REL_TABLE . " (event_id, venue_id) VALUES ('" . $event_id . "', '" . (int) $v . "')";
                    $wpdb->query($wpdb->prepare($sql_venues, array()));
                }
            }
        }
        //Discounts
        $del_discounts = "DELETE FROM " . EVENTS_DISCOUNT_REL_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($wpdb->prepare($del_discounts, NULL));
        if (!empty($_REQUEST['event_discount']) && $_REQUEST['use_coupon_code'] == 'Y') {
            //only re-add the coupon codes if they've specified to use all global coupon codes
            //and 'specific' coupon codes
            foreach ($_REQUEST['event_discount'] as $k => $v) {
                if (!empty($v)) {
                    $sql_discount = "INSERT INTO " . EVENTS_DISCOUNT_REL_TABLE . " (event_id, discount_id) VALUES ('" . $event_id . "', '" . (int) $v . "')";
                    $wpdb->query($wpdb->prepare($sql_discount, array()));
                }
            }
        }
        $del_times = "DELETE FROM " . EVENTS_START_END_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($wpdb->prepare($del_times, NULL));
        if (!empty($_REQUEST['start_time'])) {
            foreach ($_REQUEST['start_time'] as $k => $v) {
                if (!empty($v)) {
                    $time_qty = empty($_REQUEST['time_qty'][$k]) ? '0' : "'" . (int) $_REQUEST['time_qty'][$k] . "'";
                    $sql_times = "INSERT INTO " . EVENTS_START_END_TABLE . " (event_id, start_time, end_time, reg_limit) VALUES ('" . $event_id . "', '" . event_date_display(sanitize_text_field($v), 'H:i') . "', '" . event_date_display(sanitize_text_field($_REQUEST['end_time'][$k]), 'H:i') . "', " . $time_qty . ")";
                    $wpdb->query($wpdb->prepare($sql_times, array()));
                }
            }
        }
        $del_prices = "DELETE FROM " . EVENTS_PRICES_TABLE . " WHERE event_id = '" . $event_id . "'";
        $wpdb->query($wpdb->prepare($del_prices, NULL));
        if (!empty($_REQUEST['event_cost'])) {
            foreach ($_REQUEST['event_cost'] as $k => $v) {
                if (!empty($v)) {
                    $v = (double) preg_replace('/[^0-9\\.]/ui', '', $v);
                    //Removes non-integer characters
                    $price_type = $_REQUEST['price_type'][$k] != '' ? sanitize_text_field(stripslashes_deep($_REQUEST['price_type'][$k])) : __('General Admission', 'event_espresso');
                    $member_price_type = !empty($_REQUEST['member_price_type'][$k]) ? sanitize_text_field(stripslashes_deep($_REQUEST['member_price_type'][$k])) : __('Members Admission', 'event_espresso');
                    $member_price = !empty($_REQUEST['member_price'][$k]) ? (double) $_REQUEST['member_price'][$k] : $v;
                    $sql_price = array('event_id' => $event_id, 'event_cost' => $v, 'surcharge' => sanitize_text_field($_REQUEST['surcharge'][$k]), 'surcharge_type' => sanitize_text_field($_REQUEST['surcharge_type'][$k]), 'price_type' => $price_type, 'member_price' => $member_price, 'member_price_type' => $member_price_type);
                    $sql_price_data = array('%d', '%s', '%s', '%s', '%s', '%s', '%s');
                    if (!$wpdb->insert(EVENTS_PRICES_TABLE, $sql_price, $sql_price_data)) {
                        $error = true;
                    }
                }
            }
        } else {
            $sql_price = "INSERT INTO " . EVENTS_PRICES_TABLE . " (event_id, event_cost, surcharge, price_type, member_price, member_price_type) VALUES ('" . $event_id . "', '0.00', '0.00', '" . __('Free', 'event_espresso') . "', '0.00', '" . __('Free', 'event_espresso') . "')";
            if (!$wpdb->query($wpdb->prepare($sql_price, array()))) {
                $error = true;
            }
        }
        ############# MailChimp Integration ###############
        if (defined('EVENTS_MAILCHIMP_ATTENDEE_REL_TABLE') && $espresso_premium == true) {
            MailChimpController::update_event_list_rel($event_id);
        }
        // Create Event Post Code Here
        if (isset($_REQUEST['create_post'])) {
            switch ($_REQUEST['create_post']) {
                case 'N':
                    $sql = " SELECT * FROM " . EVENTS_DETAIL_TABLE;
                    $sql .= " WHERE id = '" . $event_id . "' ";
                    $wpdb->get_results($wpdb->prepare($sql, NULL));
                    $post_id = $wpdb->last_result[0]->post_id;
                    if ($wpdb->num_rows > 0 && !empty($_REQUEST['delete_post']) && $_REQUEST['delete_post'] == 'Y') {
                        $sql = array('post_id' => '', 'post_type' => '');
                        $sql_data = array('%d', '%s');
                        $update_id = array('id' => $event_id);
                        $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
                        wp_delete_post($post_id, 'true');
                    }
                    break;
                case 'Y':
                    $post_type = $_REQUEST['espresso_post_type'];
                    if ($post_type == 'post') {
                        if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php") || file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . "templates/event_post.php")) {
                            // Load message from template into message post variable
                            ob_start();
                            if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php")) {
                                require_once EVENT_ESPRESSO_TEMPLATE_DIR . "event_post.php";
                            } else {
                                require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/event_post.php";
                            }
                            $post_content = ob_get_contents();
                            ob_end_clean();
                        } else {
                            _e('There was error finding a post template. Please verify your post templates are available.', 'event_espresso');
                        }
                    } elseif ($post_type == 'espresso_event') {
                        ob_start();
                        echo $event_desc;
                        $post_content = ob_get_contents();
                        ob_end_clean();
                        // if there's a cart link shortcode in the post, replace the shortcode with one that includes the event_id
                        if (preg_match("/ESPRESSO_CART_LINK/", $post_content)) {
                            $post_content = preg_replace('/ESPRESSO_CART_LINK/', 'ESPRESSO_CART_LINK event_id=' . $event_id, $post_content);
                        }
                    }
                    $my_post = array();
                    $sql = " SELECT * FROM " . EVENTS_DETAIL_TABLE;
                    $sql .= " WHERE id = '" . $event_id . "' ";
                    $wpdb->get_results($wpdb->prepare($sql, NULL));
                    $post_id = $wpdb->last_result[0]->post_id;
                    $post_type = $_REQUEST['espresso_post_type'];
                    if ($post_id > 0) {
                        $my_post['ID'] = $post_id;
                    }
                    $my_post['post_title'] = sanitize_text_field($_REQUEST['event']);
                    $my_post['post_content'] = $post_content;
                    $my_post['post_status'] = 'publish';
                    $my_post['post_author'] = !empty($_REQUEST['user']) ? (int) $_REQUEST['user'] : '';
                    $my_post['post_category'] = !empty($_REQUEST['post_category']) ? $_REQUEST['post_category'] : '';
                    $my_post['tags_input'] = !empty($_REQUEST['post_tags']) ? $_REQUEST['post_tags'] : '';
                    $my_post['post_type'] = !empty($post_type) ? $post_type : 'post';
                    //print_r($my_post);
                    // Insert the post into the database
                    if ($post_id > 0) {
                        $post_id = wp_update_post($my_post);
                        update_post_meta($post_id, 'event_id', $event_id);
                        update_post_meta($post_id, 'event_meta', $event_meta);
                        update_post_meta($post_id, 'event_identifier', $event_identifier);
                        update_post_meta($post_id, 'event_start_date', $start_date);
                        update_post_meta($post_id, 'event_end_date', $end_date);
                        update_post_meta($post_id, 'event_location', $event_location);
                        update_post_meta($post_id, 'event_thumbnail_url', $event_thumbnail_url);
                        update_post_meta($post_id, 'virtual_url', $virtual_url);
                        update_post_meta($post_id, 'virtual_phone', $virtual_phone);
                        //
                        update_post_meta($post_id, 'event_address', $address);
                        update_post_meta($post_id, 'event_address2', $address2);
                        update_post_meta($post_id, 'event_city', $city);
                        update_post_meta($post_id, 'event_state', $state);
                        update_post_meta($post_id, 'event_country', $country);
                        update_post_meta($post_id, 'event_phone', $phone);
                        update_post_meta($post_id, 'venue_title', $venue_title);
                        update_post_meta($post_id, 'venue_url', $venue_url);
                        update_post_meta($post_id, 'venue_phone', $venue_phone);
                        update_post_meta($post_id, 'venue_image', $venue_image);
                        update_post_meta($post_id, 'event_externalURL', $externalURL);
                        update_post_meta($post_id, 'event_reg_limit', $reg_limit);
                        update_post_meta($post_id, 'event_start_time', time_to_24hr($start_time));
                        update_post_meta($post_id, 'event_end_time', time_to_24hr($end_time));
                        update_post_meta($post_id, 'event_registration_start', $registration_start);
                        update_post_meta($post_id, 'event_registration_end', $registration_end);
                        update_post_meta($post_id, 'event_registration_startT', $registration_startT);
                        update_post_meta($post_id, 'event_registration_endT', $registration_endT);
                    } else {
                        $post_id = wp_insert_post($my_post);
                        add_post_meta($post_id, 'event_id', $event_id);
                        add_post_meta($post_id, 'event_meta', $event_meta);
                        add_post_meta($post_id, 'event_identifier', $event_identifier);
                        add_post_meta($post_id, 'event_start_date', $start_date);
                        add_post_meta($post_id, 'event_end_date', $end_date);
                        add_post_meta($post_id, 'event_location', $event_location);
                        add_post_meta($post_id, 'event_thumbnail_url', $event_thumbnail_url);
                        add_post_meta($post_id, 'virtual_url', $virtual_url);
                        add_post_meta($post_id, 'virtual_phone', $virtual_phone);
                        //
                        add_post_meta($post_id, 'event_address', $address);
                        add_post_meta($post_id, 'event_address2', $address2);
                        add_post_meta($post_id, 'event_city', $city);
                        add_post_meta($post_id, 'event_state', $state);
                        add_post_meta($post_id, 'event_country', $country);
                        add_post_meta($post_id, 'event_phone', $phone);
                        add_post_meta($post_id, 'venue_title', $venue_title);
                        add_post_meta($post_id, 'venue_url', $venue_url);
                        add_post_meta($post_id, 'venue_phone', $venue_phone);
                        add_post_meta($post_id, 'venue_image', $venue_image);
                        add_post_meta($post_id, 'event_externalURL', $externalURL);
                        add_post_meta($post_id, 'event_reg_limit', $reg_limit);
                        add_post_meta($post_id, 'event_start_time', time_to_24hr($start_time));
                        add_post_meta($post_id, 'event_end_time', time_to_24hr($end_time));
                        add_post_meta($post_id, 'event_registration_start', $registration_start);
                        add_post_meta($post_id, 'event_registration_end', $registration_end);
                        add_post_meta($post_id, 'event_registration_startT', $registration_startT);
                        add_post_meta($post_id, 'event_registration_endT', $registration_endT);
                    }
                    // Store the POST ID so it can be displayed on the edit page
                    $sql = array('post_id' => $post_id, 'post_type' => $post_type);
                    $sql_data = array('%d', '%s');
                    $update_id = array('id' => $event_id);
                    $wpdb->update(EVENTS_DETAIL_TABLE, $sql, $update_id, $sql_data, array('%d'));
                    break;
            }
        }
        ?>
        <div id="message" class="updated fade"><p><strong><?php 
        _e('Event details updated for', 'event_espresso');
        ?>
 <a href="<?php 
        echo espresso_reg_url($event_id);
        ?>
" target="_blank">
		<?php 
        echo htmlentities(stripslashes(sanitize_text_field($_REQUEST['event'])), ENT_QUOTES, 'UTF-8');
        ?>
 for <?php 
        echo date("m/d/Y", strtotime($start_date));
        ?>
</a>.</strong></p></div>
        
        <?php 
        /*
         * Added for seating chart addon
         */
        if (isset($seating_chart_result) && $seating_chart_result === false) {
            echo '<p>Failed to associate new seating chart with this event. (Seats from current seating chart might have been used by some attendees)</p>';
        }
    }
    /*
     * With the recursion of this function, additional recurring events will be updated
     */
    if (isset($recurrence_dates) && count($recurrence_dates) > 0 && $_POST['recurrence_apply_changes_to'] > 1) {
        //$recurrence_dates = array_shift($recurrence_dates); //Remove the first item from the array since it will be added after this recursion
        foreach ($recurrence_dates as $r_d) {
            if ($r_d['event_id'] != '' && count($r_d) > 2) {
                update_event(array('event_id' => $r_d['event_id'], 'event_identifier' => $r_d['event_identifier'], 'recurrence_id' => $r_d['recurrence_id'], 'recurrence_start_date' => $r_d['start_date'], 'recurrence_event_end_date' => $r_d['event_end_date'], 'registration_start' => $r_d['registration_start'], 'registration_end' => $r_d['registration_end'], 'visible_on' => $r_d['visible_on'], 'bypass_nonce' => TRUE));
            }
        }
    }
    /*
     * End recursion, as part of recurring events.
     */
    do_action('action_hook_espresso_update_event_success', $_REQUEST);
}
Ejemplo n.º 25
0
        function widget($args, $instance)
        {
            extract($args);
            global $wpdb, $org_options;
            /* Our variables from the widget settings. */
            $title = apply_filters('widget_title', $instance['title']);
            /* Before widget (defined by themes). */
            echo $before_widget;
            /* Display the widget title if one was input (before and after defined by themes). */
            if ($title) {
                echo $before_title . $title . $after_title;
            }
            if ($instance['category_name'] != '') {
                $type = 'category';
            }
            $event_page_id = $org_options['event_page_id'];
            $show_expired = $instance['show_expired'] == 'false' ? " AND (e.start_date >= '" . date('Y-m-d') . "' OR e.event_status = 'O' OR e.registration_end >= '" . date('Y-m-d') . "') " : '';
            $show_secondary = $instance['show_secondary'] == 'false' ? " AND e.event_status != 'S' " : '';
            $show_deleted = $instance['show_deleted'] == 'false' ? " AND e.event_status != 'D' " : '';
            $show_recurrence = $instance['show_recurrence'] == 'false' ? " AND e.recurrence_id = '0' " : '';
            $limit = $instance['limit'] > 0 ? " LIMIT 0," . $instance['limit'] . " " : ' LIMIT 0,5 ';
            //$order_by = $order_by != 'NULL'? " ORDER BY ". $order_by ." ASC " : " ORDER BY date(start_date), id ASC ";
            $order_by = " ORDER BY date(start_date), id ASC ";
            if (isset($type) && $type == 'category') {
                $sql = "SELECT e.*, c.category_name, c.category_name, c.category_desc, ese.start_time FROM " . EVENTS_CATEGORY_TABLE . " c ";
                $sql .= " JOIN " . EVENTS_CATEGORY_REL_TABLE . " r ON r.cat_id = c.id ";
                $sql .= " JOIN " . EVENTS_DETAIL_TABLE . " e ON e.id = r.event_id ";
                $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id = e.id ";
                $sql .= " WHERE c.id = '" . $instance['category_name'] . "' ";
                $sql .= " AND e.is_active = 'Y' ";
            } else {
                $sql = "SELECT e.*, ese.start_time FROM " . EVENTS_DETAIL_TABLE . " e ";
                $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id = e.id ";
                $sql .= " WHERE e.is_active = 'Y' ";
            }
            $sql .= $show_expired;
            $sql .= $show_secondary;
            $sql .= $show_deleted;
            $sql .= $show_recurrence;
            $sql .= " GROUP BY e.id ";
            $sql .= $order_by;
            $sql .= $limit;
            $events = $wpdb->get_results($sql);
            //print_r($events);
            //event_espresso_get_event_details($sql);
            foreach ($events as $event) {
                $event->id = $event->id;
                $event->event_name = isset($event->event_name) ? $event->event_name : '';
                $event->start_date = isset($event->start_date) ? $event->start_date : '';
                $event->category_name = isset($event->category_name) ? $event->category_name : '';
                $event->category_desc = isset($event->category_desc) ? $event->category_desc : '';
                $event->externalURL = isset($event->externalURL) ? $event->externalURL : '';
                $registration_url = $event->externalURL != '' ? $event->externalURL : espresso_reg_url($event->id);
                $all_meta = array('is_active' => $event->is_active, 'event_status' => $event->event_status, 'event_address' => $event->address, 'event_address2' => $event->address2, 'registration_startT' => $event->registration_startT, 'registration_start' => $event->registration_start, 'registration_endT' => $event->registration_endT, 'registration_end' => $event->registration_end, 'start_date' => event_date_display($event->start_date, get_option('date_format')), 'start_time' => event_date_display($event->start_time, get_option('time_format')), 'end_date' => event_date_display($event->end_date, get_option('date_format')));
                //Here we can create messages based on the event status
                $status = event_espresso_get_is_active($event->id, $all_meta);
                //Print out the array of event status options
                //print_r (event_espresso_get_is_active($event->id));
                $status_display = ' - ' . $status['display_custom'];
                $status_display_ongoing = $status['status'] == 'ONGOING' ? ' - ' . $status['display_custom'] : '';
                $status_display_deleted = $status['status'] == 'DELETED' ? ' - ' . $status['display_custom'] : '';
                $status_display_secondary = $status['status'] == 'SECONDARY' ? ' - ' . $status['display_custom'] : '';
                //Waitlist event
                $status_display_reg_closed = $status['status'] == 'REGISTRATION_CLOSED' ? ' - ' . $status['display_custom'] : '';
                $status_display_not_open = $status['status'] == 'REGISTRATION_NOT_OPEN' ? ' - ' . $status['display_custom'] : '';
                $status_display_open = $status['status'] == 'REGISTRATION_OPEN' ? ' - ' . $status['display_custom'] : '';
                //You can also display a custom message. For example, this is a custom registration not open message:
                $status_display_custom_closed = $status['status'] == 'REGISTRATION_CLOSED' ? ' - <span class="espresso_closed">' . __('Regsitration is closed', 'event_espresso') . '</span>' : '';
                //End
                if (!is_user_logged_in() && defined('EVENTS_MEMBER_REL_TABLE') && !empty($member_only) && $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 ($status['status']) {
                        case 'NOT_ACTIVE':
                            //Don't show the event if any of the above are true
                            break;
                        default:
                            ?>
                            <p><a href="<?php 
                            echo $registration_url;
                            ?>
"><?php 
                            echo stripslashes_deep($event->event_name);
                            ?>
 - <?php 
                            echo event_date_display($event->start_date);
                            ?>
</a>
                            <?php 
                            /* These are custom messages that can be displayed based on the event status. Just comment the one you want to use. */
                            ?>
                                <?php 
                            //echo $status_display; //Turn this on to display the overall status of the event.
                            ?>
                                <?php 
                            //echo $status_display_ongoing; //Turn this on to display the ongoing message.
                            ?>
                                <?php 
                            //echo $status_display_deleted; //Turn this on to display the deleted message.
                            ?>
                                <?php 
                            //echo $status_display_secondary; //Turn this on to display the waitlist message.
                            ?>
                                <?php 
                            //echo $status_display_reg_closed; //Turn this on to display the secondary message.
                            ?>
                                <?php 
                            //echo $status_display_not_open; //Turn this on to display the secondary message.
                            ?>
                                <?php 
                            //echo $status_display_open; //Turn this on to display the secondary message.
                            ?>
                                <?php 
                            //echo $status_display_custom_closed; //Turn this on to display the secondary message.
                            ?>
                            </p>
                                <?php 
                            break;
                    }
                }
            }
            /* After widget (defined by themes). */
            echo $after_widget;
        }
function add_new_event()
{
    global $wpdb, $org_options, $espresso_premium;
    ob_start();
    if (empty($event_name)) {
        $event_name = '';
    }
    ?>
<!--New event display-->
		<div id="submitdiv" class="postbox">
			<div class="handlediv" title="Click to toggle"><br />
			</div>
			<h3 class="hndle"> <span>
				<?php 
    _e('New Event', 'event_espresso');
    ?>
				</span> </h3>
			<div class="inside">
				<div class="submitbox" id="submitpost"><!-- /minor-publishing -->
					<div id="major-publishing-actions" class="clearfix">
						<div id="delete-action"> <a class="submitdelete deletion" href="admin.php?page=events" onclick="return confirm('<?php 
    _e('Are you sure you want to cancel ' . $event_name . '?', 'event_espresso');
    ?>
')">
							<?php 
    _e('Cancel', 'event_espresso');
    ?>
							</a> </div>
						<div id="publishing-action">
							<input class="button-primary" type="submit" name="Submit" value="<?php 
    _e('Submit New Event', 'event_espresso');
    ?>
" id="add_new_event" />
						</div>
						<!-- /publishing-action --> 
					</div>
					<!-- /major-publishing-actions --> 
				</div>
				<!-- /submitpost --> 
			</div>
			<!-- /inside --> 
		</div>
		<!-- /submitdiv -->
		
<?php 
    if ($espresso_premium == true) {
        do_action('action_hook_espresso_new_event_right_column_top');
    }
    $values = array(array('id' => 'Y', 'text' => __('Yes', 'event_espresso')), array('id' => 'N', 'text' => __('No', 'event_espresso')));
    $event_meta = isset($event_meta) ? $event_meta : array();
    $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>' . __('Is this an active event? ', 'event_espresso') . __(select_input('is_active', $values, $is_active)) . '</p>' . '<p>' . __('Display  description? ', 'event_espresso') . select_input('display_desc', $values, $display_desc) . '</p>' . '<p>' . __('Display  registration form? ', 'event_espresso') . select_input('display_reg_form', $values, $display_reg_form) . '</p>';
    }
    //Display Lite version options - End
    $reg_limit = isset($reg_limit) ? $reg_limit : '';
    $additional_limit = isset($additional_limit) ? $additional_limit : '';
    espresso_postbox('event-status', 'Event Options', '<p>' . __('Attendee Limit', 'event_espresso') . ': <input name="reg_limit" size="10" type="text" value="' . $reg_limit . '"><br />' . '(' . __('leave blank for unlimited', 'event_espresso') . ')</p>' . '<p>' . __('Allow group registrations?', 'event_espresso') . ' ' . select_input('allow_multiple', $values, 'N') . '<p>' . __('Max Group Registrants', 'event_espresso') . ': <input type="text" name="additional_limit" value="' . $additional_limit . '" size="4">' . $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(0);
        ?>
 </div>
		</div>
	<?php 
    }
    //Custom ticket selector
    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="Upload Image" />
				<?php 
        if ($event_thumb) {
            ?>
					<p class="event-featured-thumb"><img  src="<?php 
            echo $event_thumb;
            ?>
" alt="" /></p>
					<a id='remove-image' href='#' title='Remove this image' 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')) {
        ?>
		<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 
        _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 
            echo $seating_chart->name;
            ?>
</option>
						<?php 
        }
        ?>
					</select>
				</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, "0");
        ?>
				</p>
			</div>
		</div>
		<?php 
    }
    ########## END #################################
    if (defined('EVENTS_MEMBER_REL_TABLE') && $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('N');
        ?>
</p>
			</div>
		</div>
		<!-- /event-category -->
		<?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();
    ?>
 </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";
    }
    ?>
		<?php 
    echo espresso_event_question_groups(empty($question_groups) ? array() : $question_groups);
    ?>
 
		<!-- /event-questions -->
		
		<?php 
    do_action('action_hook_espresso_staff_cb');
    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_add_new_event_groupon();
        ?>
</p>
			</div>
		</div>
		<!-- /groupon-options -->
	<?php 
    }
    if ($espresso_premium == true) {
        do_action('action_hook_espresso_new_event_right_column_bottom');
    }
    $sidebar_content = ob_get_clean();
    ob_start();
    ?>
<!-- Left Column-->
		<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 isset($event_name) ? $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 type="text" size="30" tabindex="2" name="event_identifier" id="event_identifier" value ="<?php 
    echo isset($event_identifier) ? $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;">' . __('Get Shortcode') . '</a>';
    ?>
					<?php 
    $org_options['event_page_id'] = isset($org_options['event_page_id']) ? $org_options['event_page_id'] : '';
    $event_id = isset($event_id) ? $event_id : '';
    echo '<a href="#" class="button" onclick="prompt(&#39;Event URL:&#39;, \'' . espresso_reg_url($event_id) . '\'); return false;">' . __('Get URL') . '</a>';
    ?>
				</div>
			</div>
			<!-- /edit-slug-box --> 
		</div>
		<!-- /titlediv -->
		<div id="descriptiondivrich" class="postarea"> <strong>
			<?php 
    _e('Event Description', 'event_espresso');
    ?>
			</strong>
			<?php 
    /*
    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)
    //
    if (function_exists('wp_editor')) {
        $args = array("textarea_rows" => 5, "textarea_name" => "event_desc", "editor_class" => "my_editor_custom");
        wp_editor("", "event_desc", $args);
    } else {
        the_editor('', $id = 'event_desc', $prev_id = 'title', $media_buttons = true, $tab_index = 3);
    }
    ?>
			<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  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" size="10" id="registration_start" class="datepicker" name="registration_start" value="" />
									</p>
									<p>
										<label for="registration_end"> <?php 
    echo __('Registration End:', 'event_espresso');
    ?>
</label>
										<input type="text" size="10" id="registration_end" class="datepicker" name="registration_end" value="" />
									</p>
									<p><span class="description">
									<?php 
    _e('All events <strong>require</strong> registration start/end dates and start/end times in order to display properly on your pages.', 'event_espresso');
    ?>
									</span></p>
								</fieldset>
								<fieldset id="add-event-dates">
									<legend>
									<?php 
    _e('Event Dates', 'event_espresso');
    ?>
									</legend>
									<p>
										<label for="start_date">
											<?php 
    _e('Event Start Date:', 'event_espresso');
    ?>
										</label>
										<input type="text" size="10" id="start_date" class="datepicker" name="start_date" value="" />
									</p>
									<p>
										<label for="end_date">
											<?php 
    _e('Event End Date:', 'event_espresso');
    ?>
										</label>
										<input type="text" size="10" id="end_date" class="datepicker" name="end_date" value="" />
									</p>
									
								</fieldset><p><span class="description">
									<?php 
    _e('All events <strong>require</strong> a start and end date in order to display properly on your pages.', 'event_espresso');
    ?>
									</span></p>
								<?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 
    }
    ?>
								<?php 
    /* ?> <p>
       <br /> <?php echo __('Event Visible On:','event_espresso') . ' <input type="text" size="15" id="visible_on" class="datepicker" name="visible_on" value="" />'; ?> <br />
                         </p><?php */
    ?>
								<?php 
    echo defined('EVENT_ESPRESSO_RECURRENCE_TABLE') ? '' : '<p class="recurring-available"><a class="inform" href="http://eventespresso.com/product/espresso-recurring/?utm_source=ee_plugin_admin&utm_medium=link&utm_content=Recurring+Event+Manager+Now+Available+ee_version_' . EVENT_ESPRESSO_VERSION . '&utm_campaign=add_new_event_tab" target="_blank" title="Visit eventespresso.com for full details">' . __('Recurring Event Manager Now Available!', 'event_espresso') . '</a></p>';
    ?>
</td>
							<?php 
    // ADDED TIME REGISTRATION LIMITS
    ?>
							<td class="b"><fieldset id="add-register-times">
									<legend>
									<?php 
    _e('Registration Times', 'event_espresso');
    ?>
									</legend>
									<?php 
    echo event_espresso_timereg_editor();
    ?>
								</fieldset>
								<fieldset id="add-event-times">
									<legend>
									<?php 
    _e('Event Times', 'event_espresso');
    ?>
									</legend>
									<?php 
    echo event_espresso_time_editor();
    ?>
								</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 and activated.
     */
    if (defined('EVENT_ESPRESSO_RECURRENCE_TABLE') && $espresso_premium == true) {
        require_once EVENT_ESPRESSO_RECURRENCE_FULL_PATH . "functions/re_view_functions.php";
        event_espresso_re_form();
    }
    ?>
			<div id="event-pricing" class="postbox">
				<?php 
    defined('EVENTS_MEMBER_REL_TABLE') ? $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('EVENTS_MEMBER_REL_TABLE') && $espresso_premium == true) {
        ?>
							<td id="member-pricing" class="b"><?php 
        echo event_espresso_member_only_pricing();
        //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_new_event_left_column_advanced_options_top');
    }
    ?>
			<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>
						
						<?php 
    if (function_exists('espresso_venue_dd') && isset($org_options['use_venue_manager']) && $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');
            ?>
									<input id="phys-addr" type="hidden"  value="" name="address" />
									<input id="phys-addr-2" type="hidden"  value="" name="address2" />
									<input id="phys-city" type="hidden"  value="" name="city" />
									<input id="phys-state" type="hidden"  value="" name="state" />
									<input id="zip-postal" type="hidden"  value="" name="zip" />
									<input id="phys-country" type="hidden"  value="" name="country" />
									<input id="ven-title"  type="hidden"  value="" name="venue_title" />
									<input id="ven-website" type="hidden"  value="" name="venue_url" />
									<input id="ven-phone" type="hidden"  value="" name="venue_phone" />
									<input id="ven-image" type="hidden"  value="" name="venue_image" />
									</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();
            ?>
								<?php 
        }
        ?>
							</fieldset></td>
						<?php 
    } else {
        $ven_type = 'class="manual-venue"';
        ?>
						<td <?php 
        echo $ven_type;
        ?>
><fieldset id="phys-location">
								<legend>
								<?php 
        _e('Physical Location', 'event_espresso');
        ?>
								</legend>
								<p>
									<label for="phys-addr">
										<?php 
        _e('Address:', 'event_espresso');
        ?>
									</label>
									<input id="phys-addr" size="20" tabindex="101"  type="text"  value="" name="address" />
								</p>
								<p>
									<label for="phys-addr-2">
										<?php 
        _e('Address 2:', 'event_espresso');
        ?>
									</label>
									<input id="phys-addr-2" size="20" tabindex="102"  type="text"  value="" name="address2" />
								</p>
								<p>
									<label for="phys-city">
										<?php 
        _e('City:', 'event_espresso');
        ?>
									</label>
									<input id="phys-city" size="20" tabindex="103"  type="text"  value="" name="city" />
								</p>
								<p>
									<label for="phys-state">
										<?php 
        _e('State:', 'event_espresso');
        ?>
									</label>
									<input id="phys-state" size="20" tabindex="104"  type="text"  value="" name="state" />
								</p>
								<p>
									<label for="zip-postal">
										<?php 
        _e('Zip/Postal Code:', 'event_espresso');
        ?>
									</label>
									<input size="20" id="zip-postal" tabindex="105"  type="text"  value="" name="zip" />
								</p>
								<p>
									<label for="phys-country">
										<?php 
        _e('Country:', 'event_espresso');
        ?>
									</label>
									<input id="phys-country" size="20" tabindex="106"  type="text"  value="" name="country" />
								</p>
							</fieldset></td>
							<td <?php 
        echo $ven_type;
        ?>
>
						
							<fieldset id="venue-info">
						
						<legend>
						<?php 
        _e('Venue Information', 'event_espresso');
        ?>
						</legend>
						<p>
							<label for="ven-title">
								<?php 
        _e('Title:', 'event_espresso');
        ?>
							</label>
							<input id="ven-title" size="20" tabindex="106"  type="text"  value="<?php 
        echo isset($venue_title) ? $venue_title : '';
        ?>
" name="venue_title" />
						</p>
						<p>
							<label for="ven-website">
								<?php 
        _e('Website:', 'event_espresso');
        ?>
							</label>
							<input id="ven-website" size="20" tabindex="107"  type="text"  value="<?php 
        echo isset($venue_url) ? $venue_url : '';
        ?>
" name="venue_url" />
						</p>
						<p>
							<label for="ven-phone">
								<?php 
        _e('Phone:', 'event_espresso');
        ?>
							</label>
							<input id="ven-phone"  size="20" tabindex="108"  type="text"  value="<?php 
        echo isset($venue_phone) ? $venue_phone : '';
        ?>
" name="venue_phone" />
						</p>
						<p>
							<label for="ven-image">
								<?php 
        _e('Image:', 'event_espresso');
        ?>
							</label>
							<input id="ven-image" size="20" tabindex="110"  type="text"  value="<?php 
        echo isset($venue_image) ? $venue_image : '';
        ?>
" name="venue_image" />
						</p>
							</td>
						
						<?php 
    }
    ?>
						<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 id="virt-phone" size="20"  type="text" tabindex="107" value="" 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="108"  name="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="109"  type="text"  value="" name="virtual_phone" />
							</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(empty($event_meta) ? '' : $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, 'N');
    ?>
 <?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 
        $email_id = isset($email_id) ? $email_id : '';
        _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 class="section-heading">
								<?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("", "conf_mail", $args);
    } else {
        echo '<textarea name="conf_mail" class="theEditor" id="conf_mail"></textarea>';
        espresso_tiny_mce();
    }
    ?>
							<table id="email-confirmation-form" cellspacing="0">
								<tbody>
									<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>
								</tbody>
							</table>
						</div>
					</div>
				</div>
			</div>
			<!-- /confirmation-email-->
			<?php 
    if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/admin-files/event-management/new_event_post.php')) {
        require_once EVENT_ESPRESSO_PLUGINFULLPATH . "includes/admin-files/event-management/new_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';
    ?>
<input type="hidden" name="action" value="add" />
<?php 
    wp_nonce_field('espresso_verify_insert_event_nonce', 'nonce_verify_insert_event');
    //Security check using nonce
    //wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false );
    //wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false );
    ?>
<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
			});
			jQuery("#start_date").change(function(){
				jQuery("#end_date").val(jQuery(this).val());
			});
	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(){
	confirm('Do you really want to delete this image? Please remember to update your event to complete the removal.');
	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);
	});

 });

	//]]>
</script>
<?php 
}
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 
}
Ejemplo n.º 28
0
function espresso_calendar_do_stuff($show_expired)
{
    global $wpdb, $org_options, $espresso_calendar, $event_category_id, $events, $eventsArray;
    //Build the SQL to run
    //Get the categories
    if ($event_category_id != "") {
        $type = 'cat';
        $sql = "SELECT e.*, c.category_name, c.category_desc, c.display_desc, ese.start_time, ese.end_time FROM " . EVENTS_DETAIL_TABLE . " e ";
        $sql .= " JOIN " . EVENTS_CATEGORY_REL_TABLE . " r ON r.event_id = e.id ";
        $sql .= " JOIN " . EVENTS_CATEGORY_TABLE . " c ON c.id = r.cat_id ";
        $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id= e.id ";
        if (function_exists('espresso_version')) {
            if (espresso_version() >= '3.2.P') {
                // if we're using ee 3.2+, is_active is true/false
                $sql .= " WHERE e.is_active != false ";
            } else {
                $sql .= " WHERE e.is_active != 'N' ";
            }
        }
        $sql .= " AND e.event_status != 'D' ";
        //Deleted
        $sql .= " AND e.event_status != 'S' ";
        //Secondary/Waitlist
        $sql .= " AND e.event_status != 'P' ";
        //Pending
        $sql .= " AND e.event_status != 'X' ";
        $sql .= " AND e.event_status != 'R' ";
        //Draft
        $sql .= " AND c.category_identifier = '" . $event_category_id . "' ";
        if ($show_expired == "false") {
            $sql .= " AND start_date >= '" . date('Y-m-d') . "' ";
            $sql .= " AND e.registration_start <= '" . date('Y-m-d') . "' ";
            $sql .= " AND e.registration_end >= '" . date('Y-m-d') . "' ";
        }
    } else {
        //Get all events
        $type = 'all';
        $sql = "SELECT e.*, ese.start_time, ese.end_time FROM " . EVENTS_DETAIL_TABLE . " e ";
        $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id= e.id ";
        if (function_exists('espresso_version')) {
            if (espresso_version() >= '3.2.P') {
                // if we're using ee 3.2+, is_active is true/false
                $sql .= " WHERE e.is_active != false ";
            } else {
                $sql .= " WHERE e.is_active != 'N' ";
            }
        }
        $sql .= " AND e.event_status != 'D' ";
        //Deleted
        $sql .= " AND e.event_status != 'S' ";
        //Secondary/Waitlist
        $sql .= " AND e.event_status != 'P' ";
        //Pending
        $sql .= " AND e.event_status != 'X' ";
        $sql .= " AND e.event_status != 'R' ";
        //Draft
        if ($show_expired == "false") {
            $sql .= " AND e.start_date >= '" . date('Y-m-d') . "' ";
            $sql .= " AND e.registration_start <= '" . date('Y-m-d') . "' ";
            $sql .= " AND e.registration_end >= '" . date('Y-m-d') . "' ";
        }
    }
    $sql .= " GROUP BY e.id ORDER BY date(start_date), id ASC";
    //Debug
    //echo '<p>$sql - '.$sql.'</p>';
    $events = array();
    $events_data = $wpdb->get_results($sql);
    foreach ($events_data as $event) {
        //Debug:
        //Print the category id for each event.
        //print_r( espresso_event_category_data($event->id) );
        //Get details about the category of the event
        $category_data = espresso_event_category_data($event->id);
        $category_data['category_meta'] = unserialize($category_data['category_meta']);
        //Debug:
        //echo "<pre>".print_r($category_data,true)."</pre>";
        //Assign colors to events by category
        if (isset($category_data['category_meta']) && $category_data['category_meta']['use_pickers'] == 'Y') {
            $eventArray['color'] = $category_data['category_meta']['event_background'];
            $eventArray['textColor'] = $category_data['category_meta']['event_text_color'];
        }
        $event_meta = unserialize($event->event_meta);
        //Debug:
        //var_dump($event);
        //If the version of Event Espresso is 3.2 or older, we need to use the new permalink structure. If not, then we need to default to the structure.
        if (function_exists('espresso_version')) {
            if (espresso_version() >= '3.2.P') {
                switch ($espresso_calendar['espresso_page_post']) {
                    case 'P':
                        $registration_url = get_permalink($event->post_id);
                        break;
                    case 'R':
                    default:
                        //$registration_url = get_home_url(). '/?page_id=' . $org_options['event_page_id'] . '&regevent_action=register&event_id=' . $event->id;
                        $registration_url = espresso_reg_url($event->id, $event->slug);
                        break;
                }
            } else {
                switch ($espresso_calendar['espresso_page_post']) {
                    case 'P':
                        $registration_url = get_home_url() . '/?p=' . $event->post_id;
                        break;
                    case 'R':
                    default:
                        $registration_url = get_home_url() . '/?page_id=' . $org_options['event_page_id'] . '&regevent_action=register&event_id=' . $event->id;
                        break;
                }
            }
        }
        //Checkthe status of the event. If the event is expired, the link to the registration page will be deactivated.
        $eventArray['url'] = '';
        $status = '';
        //Changed 8-30-2011 by Seth
        /* switch (event_espresso_get_status($event->id)){
        	  case 'NOT_ACTIVE':
        	  $status = ' - ' . __('Expired','event_espresso');
        	  break;
        	  case 'ACTIVE':
        	  $status = '';
        	  break;
        	  } */
        //End Seth
        // Build calendar array from $event data
        //Gets the URL of the event and links the event to the registration form.
        $eventArray['url'] = $event->externalURL != '' ? htmlspecialchars_decode($event->externalURL) : $registration_url;
        //Id of the event
        $eventArray['id'] = $event->id;
        //Get the title of the event
        $ee_event_title = htmlspecialchars_decode(stripslashes_deep($event->event_name . $status), ENT_QUOTES);
        $eventArray['title'] = $ee_event_title;
        //Gets the description of the event. This can be used for hover effects such as jQuery Tooltips or QTip
        $eventArray['description'] = espresso_format_content($event->event_desc);
        //Supports 3.2 short descriptions
        if (isset($org_options['template_settings']['display_short_description_in_event_list']) && $org_options['template_settings']['display_short_description_in_event_list'] == true) {
            $eventArray['description'] = array_shift(explode('<!--more-->', $eventArray['description']));
        }
        //Supports 3.1 short descriptions
        if (isset($org_options['display_short_description_in_event_list']) && $org_options['display_short_description_in_event_list'] == 'Y') {
            $eventArray['description'] = array_shift(explode('<!--more-->', $eventArray['description']));
        }
        //Get the start and end times for each event
        //important! time must be in iso8601 format 2010-05-10T08:30!!
        $eventArray['start'] = date("c", strtotime($event->start_date . ' ' . event_date_display($event->start_time, get_option('time_format'))));
        $eventArray['end'] = date("c", strtotime($event->end_date . ' ' . event_date_display($event->end_time, get_option('time_format'))));
        $eventArray['day'] = date("j", strtotime($event->end_date));
        $eventArray['month'] = date("n", strtotime($event->end_date));
        if ($eventArray['end'] < date('Y-m-d')) {
            $eventArray['expired'] = 'expired';
        } else {
            $eventArray['expired'] = '';
        }
        $eventArray['today'] = date('Y-m-d');
        $eventArray['this_month'] = date('m');
        $eventArray['startTime'] = event_date_display($event->start_time, $espresso_calendar['time_format']);
        $eventArray['endTime'] = event_date_display($event->end_time, $espresso_calendar['time_format']);
        // Add thumb to eventArray
        $eventArray['event_img_thumb'] = '';
        if ($espresso_calendar['enable_calendar_thumbs'] == true) {
            if (isset($event_meta['event_thumbnail_url'])) {
                $calendar_thumb = $event_meta['event_thumbnail_url'];
                //Debug:
                //echo '<a href="' . $registration_url . '"><img class="event-id-'. $event->id . '" src="'. $calendar_thumb . '" alt="" title="' . $ee_event_title . '" / ></a>';
                $eventArray['event_img_thumb'] = $calendar_thumb;
            }
        }
        //Custom fields:
        //These can be used to perform special functions in your display.
        //This decalares the category ID as the CSS class name
        $eventArray['className'] = '';
        $eventArray['eventType'] = '';
        if (isset($espresso_calendar['enable_cat_classes']) && $espresso_calendar['enable_cat_classes'] == true) {
            //Debug
            //var_dump($category_data);
            //This is the class
            $eventArray['className'] = $category_data['category_identifier'];
            //This can be used to use the category id as the event type
            $eventArray['eventType'] = $category_data['category_name'];
        }
        //end if user enabled cat for classes
        //End custom fields
        //If set to true, events will be shown as all day events
        $eventArray['allDay'] = FALSE;
        //Array of the event details
        $events[] = $eventArray;
        //Reset category colors
        $eventArray['color'] = '';
        $eventArray['textColor'] = '';
    }
    //Debug:
    //Print the results of the code above
    //echo json_encode($events);
    //echo '<style type="text/css">'.$category_styles.'</style>';
}