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; }
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"; }
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; ?> </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&action=edit&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&action=delete&event_id=<?php echo $event_id; ?> '><?php _e('Delete', 'event_espresso'); ?> </a></span> | <span><a href="admin.php?page=events&event_admin_reports=list_attendee_payments&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&event_id=" . $event_id . "&export=report&action=payment&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&event_admin_reports=list_attendee_payments&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&action=edit&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&event_id=<?php echo $event_id; ?> &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&event_id=" . $event_id . "&export=report&action=payment&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&event_admin_reports=event_newsletter&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&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&id=" . $event_id . "&export=report&action=payment&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&id=" . $event_id . "&export=report&action=event&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&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(); }
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} {$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} {$lname}\n<br/>\nYour registration is pending for approval from event admin. You will receive an email with payment info when admin approves your registration.\n<br/><br/>\nThank You.\n"; $email_params = array('send_to' => $attendee_email, 'email_subject' => __($subject, 'event_espresso'), 'email_body' => $body); event_espresso_send_email($email_params); } }
function 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&action=edit&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&action=delete&event_id=<?php echo $event_id; ?> '><?php _e('Delete', 'event_espresso'); ?> </a></span> | <span><a href="admin.php?page=events&event_admin_reports=list_attendee_payments&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&event_id=" . $event_id . "&export=report&action=payment&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&action=edit&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&event_id=<?php echo $event_id; ?> &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&event_id=" . $event_id . "&export=report&action=payment&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&event_admin_reports=event_newsletter&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&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&export=report&action=payment&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&export=report&action=event&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&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(); }
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;
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(''', "'", $question->question))); $question->question = htmlspecialchars($question->question, ENT_QUOTES, 'UTF-8'); $question->answer = trim(stripslashes(str_replace(''', "'", $question->answer))); $question->answer = htmlspecialchars($question->answer, ENT_QUOTES, 'UTF-8'); $display_questions .= '<p class="espresso_questions"><strong>' . $question->question . '</strong>:<br /> ' . str_replace(',', '<br />', $question->answer) . '</p>'; } //Get the event information $SQL = "SELECT ed.* FROM " . EVENTS_DETAIL_TABLE . " ed "; $SQL .= "JOIN " . EVENTS_ATTENDEE_TABLE . " ea ON ed.id = ea.event_id "; $SQL .= "WHERE ea.registration_id=%s"; $events = $wpdb->get_results($wpdb->prepare($SQL, $registration_id)); foreach ($events as $event) { $event_id = $event->id; $event_name = stripslashes_deep($event->event_name); $event_desc = stripslashes_deep($event->event_desc); $display_desc = $event->display_desc; $event_identifier = $event->event_identifier; $reg_limit = $event->reg_limit; $active = $event->is_active; $send_mail = $event->send_mail; $conf_mail = $event->conf_mail; $email_id = $event->email_id; $alt_email = $event->alt_email; $start_date = event_date_display($event->start_date); $end_date = $event->end_date; $virtual_url = $event->virtual_url; $virtual_phone = $event->virtual_phone; $event_address = $event->address; $event_address2 = $event->address2; $event_city = $event->city; $event_state = $event->state; $event_zip = $event->zip; $event_country = $event->country; $location = ($event_address != '' ? $event_address : '') . ($event_address2 != '' ? '<br />' . $event_address2 : '') . ($event_city != '' ? '<br />' . $event_city : '') . ($event_state != '' ? ', ' . $event_state : '') . ($event_zip != '' ? '<br />' . $event_zip : '') . ($event_country != '' ? '<br />' . $event_country : ''); $location_phone = $event->phone; $require_pre_approval = $event->require_pre_approval; $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country)); } //Build links $event_url = espresso_reg_url($event_id); $event_link = '<a href="' . $event_url . '">' . $event_name . '</a>'; $SQL = "SELECT * FROM " . EVENTS_ATTENDEE_TABLE; if ($registration_id != '') { $SQL .= " WHERE registration_id = '" . $registration_id . "' "; } elseif ($attendee_id != '') { $SQL .= " WHERE id = '" . $attendee_id . "' "; } else { _e('No ID Supplied', 'event_espresso'); } $SQL .= " AND is_primary = 1 "; $SQL .= " ORDER BY id "; $SQL .= " LIMIT 0,1 "; //Get the first attendees details if (!($attendee = $wpdb->get_row($wpdb->prepare($SQL, NULL)))) { wp_die(__('An error occured. The primary attendee could not be found.', 'event_espresso')); } $attendee_id = $attendee->id; $attendee_email = isset($attendee->email) ? $attendee->email : ''; $lname = isset($attendee->lname) ? htmlspecialchars(stripslashes($attendee->lname), ENT_QUOTES, 'UTF-8') : ''; $fname = isset($attendee->fname) ? htmlspecialchars(stripslashes($attendee->fname), ENT_QUOTES, 'UTF-8') : ''; $address = isset($attendee->address) ? htmlspecialchars(stripslashes($attendee->address), ENT_QUOTES, 'UTF-8') : ''; $address2 = isset($attendee->address2) ? htmlspecialchars(stripslashes($attendee->address2), ENT_QUOTES, 'UTF-8') : ''; $city = isset($attendee->city) ? htmlspecialchars(stripslashes($attendee->city), ENT_QUOTES, 'UTF-8') : ''; $state = isset($attendee->state) ? htmlspecialchars(stripslashes($attendee->state), ENT_QUOTES, 'UTF-8') : ''; $country = isset($attendee->country) ? htmlspecialchars(stripslashes($attendee->country), ENT_QUOTES, 'UTF-8') : ''; $zip = isset($attendee->zip) ? $attendee->zip : ''; $payment_status = $attendee->payment_status; $txn_type = $attendee->txn_type; $amount_pd = (double) $attendee->amount_pd; $total_cost = (double) $attendee->total_cost; $payment_date = $attendee->payment_date; $phone = $attendee->phone; $event_time = $attendee->event_time; $end_time = $attendee->end_time; $date = $attendee->date; $pre_approve = $attendee->pre_approve; $session_id = $attendee->attendee_session; if ($attendee->is_primary) { $event_cost = $total_cost; } $attendee_pre_approved = is_attendee_approved($event_id, $attendee_id); if ($attendee_pre_approved) { //Pull in the "Payment Overview" page template if (file_exists(EVENT_ESPRESSO_TEMPLATE_DIR . "payment_page.php")) { require_once EVENT_ESPRESSO_TEMPLATE_DIR . "payment_page.php"; //This is the path to the template file if available } else { require_once EVENT_ESPRESSO_PLUGINFULLPATH . "templates/payment_page.php"; } //Show payment options if ($total_cost > 0) { if (file_exists(EVENT_ESPRESSO_GATEWAY_DIR . "gateway_display.php")) { require_once EVENT_ESPRESSO_GATEWAY_DIR . "gateway_display.php"; } else { require_once EVENT_ESPRESSO_PLUGINFULLPATH . "gateways/gateway_display.php"; } //Check to see if the site owner wants to send an confirmation eamil before payment is recieved. if ($org_options['email_before_payment'] == 'Y') { event_espresso_email_confirmations(array('session_id' => $session_id, 'send_admin_email' => 'true', 'send_attendee_email' => 'true')); } } else { event_espresso_email_confirmations(array('session_id' => $session_id, 'send_admin_email' => 'true', 'send_attendee_email' => 'true')); } } else { if (file_exists(EVENT_ESPRESSO_PLUGINFULLPATH . 'includes/process-registration/pending_approval_page.php')) { require_once 'pending_approval_page.php'; echo espresso_pending_registration_approval($registration_id); return; } } echo '</div>'; }
function 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(); }
/** * 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'] . '®event_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'] . '®event_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; } }
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(); }
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. */ }
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'><<</a>"; $espresso_paginate .= "<a href='#' current_page={$prev} class='event_paginate {$prev_no_more} ui-icon ui-icon-seek-prev'><</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'>></a>"; $espresso_paginate .= "<a href='#' current_page={$total_pages} class='event_paginate {$next_no_more} ui-icon ui-icon-seek-end'>>></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; }
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); }
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('Event Shortcode:', \'[SINGLEEVENT single_event_id="\' + jQuery(\'#event_identifier\').val() + \'"]\'); 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('Event URL:', \'' . 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"> </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&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&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&event_admin_reports=list_attendee_payments&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&event_admin_reports=event_newsletter&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&event_admin_reports=event_newsletter&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"> <a class="submitdelete deletion" href="admin.php?page=events&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&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('Event Shortcode:', \'[SINGLEEVENT single_event_id="\' + jQuery(\'#event_identifier\').val() + \'"]\'); return false;">' . __('Shortcode') . '</a>'; ?> <?php echo '<a href="#" class="button" onclick="prompt('Short URL:', \'' . espresso_reg_url($event_id) . '\'); return false;">' . __('Short URL') . '</a>'; ?> <?php echo '<a href="#" class="button" onclick="prompt('Full URL:', \'' . home_url() . '/?page_id=' . $org_options['event_page_id'] . '&regevent_action=register&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"> </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&TB_iframe=1'); jQuery('p.event-featured-thumb').addClass('old'); header_clicked = true; return false; }); window.original_send_to_editor = window.send_to_editor; window.send_to_editor = function(html) { if(header_clicked) { imgurl = jQuery('img',html).attr('src'); jQuery('#' + formfield).val(imgurl); jQuery('#featured-image').append("<p id='image-display'><img class='show-selected-image' src='"+imgurl+"' alt='' /></p>"); header_clicked = false; tb_remove(); } else { window.original_send_to_editor(html); } } // process the remove link in the metabox jQuery('#remove-image').click(function(){ var answer = confirm("<?php _e("Do you really want to delete this image? Please remember to update your event to complete the removal.", 'event_espresso'); ?> "); if (answer){ jQuery("#upload_image").val(''); jQuery("p.event-featured-thumb").remove(); jQuery("p#image-display").remove(); jQuery('#remove-image').remove(); jQuery("#show_thumb_in_lists, #show_on_calendar, #show_thumb_in_regpage").val(false); } return false; }); }); //]]> </script> <?php }
function espresso_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'] . '®event_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'] . '®event_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>'; }