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>'; }
* Load the multi event link. * */ //Un-comment these next lines to check if the event is active //echo event_espresso_get_status($event_id); //print_r( event_espresso_get_is_active($event_id)); if ($multi_reg && event_espresso_get_status($event_id) == 'ACTIVE') { // Uncomment && $display_reg_form == 'Y' in the line above to hide the add to cart link/button form the event list when the registration form is turned off. $params = array('event_id' => $event_id, 'anchor' => __("", 'event_espresso'), 'event_name' => $event_name); $cart_link = event_espresso_cart_link($params); } else { $cart_link = false; } if ($display_reg_form == 'Y') { //Check to see if the Members plugin is installed. $member_options = get_option('events_member_settings'); if (function_exists('espresso_members_installed') && espresso_members_installed() == true && !is_user_logged_in() && ($member_only == 'Y' || $member_options['member_only_all'] == 'Y')) { echo '<p class="ee_member_only">' . __('Member Only Event', 'event_espresso') . '</p>'; } else { ?> <p id="register_link-<?php echo $event_id; ?> " class="register-link-footer" style="float: right;"> <a style="padding: .5em 1em; background: #ccc; text-decoration: none;" 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 $event_id; ?> " href="<?php echo $registration_url; ?> " title="<?php echo stripslashes_deep($event_name);
function event_espresso_add_question_groups($question_groups, $answer = '', $event_id = null, $multi_reg = 0, $meta = array(), $class = 'my_class') { global $wpdb; //If memebers addon is installed, check to see if we want to disable the form fields for members $disabled = ''; if (function_exists('espresso_members_installed') && espresso_members_installed() == true) { $member_options = get_option('events_member_settings'); if (is_user_logged_in() && !empty($member_options['autofilled_editable']) && $member_options['autofilled_editable'] == 'N') { $disabled = 'disabled="disabled"'; } } $event_id = empty($_REQUEST['event_id']) ? $event_id : $_REQUEST['event_id']; if (count($question_groups) > 0) { $questions_in = ''; $FILTER = ''; if (isset($_REQUEST['regevent_action'])) { $FILTER = " AND q.admin_only != 'Y' "; } //echo 'additional_attendee_reg_info = '.$meta['additional_attendee_reg_info'].'<br />'; //Only personal information for the additional attendees in each group if (isset($meta['additional_attendee_reg_info']) && $meta['additional_attendee_reg_info'] == '2' && isset($meta['attendee_number']) && $meta['attendee_number'] > 1) { $FILTER .= " AND qg.system_group = 1 "; } if (!is_array($question_groups) && !empty($question_groups)) { $question_groups = unserialize($question_groups); } //Debug //echo "<pre>".print_r($question_groups,true)."</pre>"; foreach ($question_groups as $g_id) { $questions_in .= $g_id . ','; } $questions_in = substr($questions_in, 0, -1); $group_name = ''; $counter = 0; $sql = "SELECT q.*, qg.group_name, qg.group_description, qg.show_group_name, qg.show_group_description, qg.group_identifier\n\t\t\t\t\tFROM " . EVENTS_QUESTION_TABLE . " q\n\t\t\t\t\tJOIN " . EVENTS_QST_GROUP_REL_TABLE . " qgr ON q.id = qgr.question_id\n\t\t\t\t\tJOIN " . EVENTS_QST_GROUP_TABLE . " qg ON qg.id = qgr.group_id\n\t\t\t\t\tWHERE qgr.group_id in ( {$questions_in} ) {$FILTER}\n\t\t\t\t\tORDER BY qg.group_order ASC, qg.id, q.sequence, q.id ASC"; //echo $sql; $questions = $wpdb->get_results($sql); $num_rows = $wpdb->num_rows; $html = ''; if ($num_rows > 0) { $questions_displayed = array(); foreach ($questions as $question) { $counter++; if (!in_array($question->id, $questions_displayed)) { $questions_displayed[] = $question->id; //if new group, close fieldset $html .= $group_name != '' && $group_name != $question->group_name ? '</fieldset>' : ''; if ($group_name != $question->group_name) { $html .= '<fieldset class="event_questions" id="' . $question->group_identifier . '">'; $html .= $question->show_group_name != 0 ? "<h4 class=\"reg-quest-title section-title\">" . stripslashes_deep($question->group_name) . "</h4>" : ''; $html .= $question->show_group_description != 0 && $question->group_description == true ? '<p class="quest-group-descript">' . stripslashes_deep($question->group_description) . '</p>' : ''; $group_name = stripslashes_deep($question->group_name); } $html .= event_form_build($question, $answer, $event_id, $multi_reg, $meta, $class, $disabled); } $html .= $counter == $num_rows ? '</fieldset>' : ''; } } //end questions display } else { $html = ''; } return $html; }
function event_form_build($question, $answer = "", $event_id = null, $multi_reg = 0, $extra = array(), $class = 'ee-reg-page-questions', $disabled = '') { if ($question->admin_only == 'Y' && empty($extra['admin_only'])) { return; } $attendee_number = isset($extra['attendee_number']) ? $extra['attendee_number'] : 'XXXXXX'; $price_id = isset($extra['price_id']) ? $extra['price_id'] : 0; $multi_name_adjust = $multi_reg == 1 ? "[{$event_id}][{$price_id}][{$attendee_number}]" : ''; $text_input_class = ' ee-reg-page-text-input '; // XXXXXX will get replaced with the attendee number $XATT1 = isset($extra['x_attendee']) && $extra['x_attendee'] ? 'x_attendee_' : ''; $XATT2 = isset($extra['x_attendee']) && $extra['x_attendee'] ? '[XXXXXX]' : ''; $field_name = $question->system_name != '' ? $question->system_name : $question->question_type . '_' . $question->id; $email_validate = $question->system_name == 'email' ? 'email' : ''; $question->system_name = !empty($extra["x_attendee"]) ? "x_attendee_" . $question->system_name . "[XXXXXX]" : $question->system_name; $question->question = stripslashes($question->question); if ($question->required == "Y") { $required_title = ' title="' . $question->required_text . '"'; $required_class = ' required ' . $email_validate . ' '; $required_label = "<em>*</em>"; } else { $required_title = ''; $required_class = ''; $required_label = ''; } $label = '<label for="' . $XATT1 . $field_name . $XATT2 . '" class="' . $class . '">' . trim(stripslashes(str_replace(''', "'", $question->question))) . $required_label . '</label> '; if (is_array($answer) && array_key_exists('event_attendees', $answer)) { $answer = isset($answer['event_attendees'][$price_id][$attendee_number][$XATT1 . $field_name . $XATT2]) ? $answer['event_attendees'][$price_id][$attendee_number][$XATT1 . $field_name . $XATT2] : ''; } //If the members addon is installed, get the users information if available if (function_exists('espresso_members_installed') && espresso_members_installed() == true) { global $current_user; global $user_email; require_once EVENT_ESPRESSO_MEMBERS_DIR . "user_vars.php"; //Load Members functions $userid = $current_user->ID; } $html = ''; if (is_array($answer)) { array_walk_recursive($answer, 'trim'); } else { $answer = trim($answer); } switch ($question->question_type) { case "TEXT": if (defined('EVENT_ESPRESSO_MEMBERS_DIR') && (empty($_REQUEST['event_admin_reports']) || $_REQUEST['event_admin_reports'] != 'add_new_attendee')) { if (!empty($question->system_name)) { $answer = htmlspecialchars(stripslashes($answer), ENT_QUOTES, 'UTF-8'); switch ($question->system_name) { case $question->system_name == 'fname': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes($current_user->first_name), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; case $question->system_name == 'lname': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes($current_user->last_name), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; case $question->system_name == 'email': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes($user_email), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; case $question->system_name == 'address': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes(get_user_meta($userid, 'event_espresso_address', TRUE)), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; case $question->system_name == 'city': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes(get_user_meta($userid, 'event_espresso_city', TRUE)), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; case $question->system_name == 'state': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes(get_user_meta($userid, 'event_espresso_state', TRUE)), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; case $question->system_name == 'zip': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes(get_user_meta($userid, 'event_espresso_zip', TRUE)), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; case $question->system_name == 'phone': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes(get_user_meta($userid, 'event_espresso_phone', TRUE)), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; case $question->system_name == 'country': $answer = $attendee_number === 1 && !$answer ? htmlspecialchars(stripslashes(get_user_meta($userid, 'event_espresso_country', TRUE)), ENT_QUOTES, 'UTF-8') : $answer; $html .= empty($answer) ? '' : '<input name="' . $question->system_name . $multi_name_adjust . '" type="hidden" value="' . $answer . '" class="' . $class . '" />'; break; } } } if (is_array($answer)) { $answer = ''; } if ($answer == '') { $disabled = ''; } $html .= '<div class="event_form_field">' . $label; $html .= '<input type="text" ' . $required_title . ' class="' . $required_class . $class . $text_input_class . ' ' . $field_name . '" id="' . $XATT1 . $field_name . $XATT2 . '-' . $event_id . '-' . $price_id . '-' . $attendee_number . '" name="' . $XATT1 . $field_name . $XATT2 . $multi_name_adjust . '" value="' . htmlspecialchars(stripslashes($answer), ENT_QUOTES, 'UTF-8') . '" ' . $disabled . ' /></div>'; break; case "TEXTAREA": if (is_array($answer)) { $answer = ''; } $html .= '<div class="event_form_field event-quest-group-textarea">' . $label; $html .= '<textarea ' . $required_title . ' class="' . $required_class . $class . $text_input_class . ' ' . $field_name . '" id="' . $XATT1 . $field_name . $XATT2 . '-' . $event_id . '-' . $price_id . '-' . $attendee_number . '" name="' . $XATT1 . $field_name . $XATT2 . $multi_name_adjust . '" rows="5">' . htmlspecialchars(stripslashes($answer), ENT_QUOTES, 'UTF-8') . '</textarea></div>'; break; case "SINGLE": $question = apply_filters('filter_hook_espresso_form_question', $question); if (!empty($question->response)) { $html .= '<div class="single-radio">' . $label; $html .= '<ul class="options-list-radio event_form_field">'; $values = explode(",", $question->response); $answer = trim(stripslashes(str_replace(''', "'", $answer))); $answer = htmlspecialchars($answer, ENT_QUOTES, 'UTF-8'); foreach ($values as $key => $value) { $value = trim(stripslashes(str_replace(''', "'", $value))); $value = htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); $checked = $value == $answer ? ' checked="checked"' : ""; $value_id = 'SINGLE_' . $question->id . '_' . $key . '_' . $attendee_number; $formatted = apply_filters('filter_hook_espresso_question_formatted_value', $value, $question); $html .= ' <li> <label for="' . $value_id . '" class="' . $class . ' radio-btn-lbl"> <input id="' . $value_id . '" ' . $required_title . ' class="' . $required_class . $class . ' ' . $field_name . '" name="' . $XATT1 . $field_name . $XATT2 . $multi_name_adjust . '" type="radio" value="' . $value . '" ' . $checked . ' /> <span>' . $formatted . '</span> </label> </li>'; } $html .= '</ul>'; $html .= '</div>'; } break; case "MULTIPLE": $question = apply_filters('filter_hook_espresso_form_question', $question); if (!empty($question->response)) { $html .= '<div class="multi-checkbox">' . $label; $html .= '<ul class="options-list-check event_form_field">'; if (is_array($answer)) { foreach ($answer as $key => $value) { $value = trim(stripslashes(str_replace(''', "'", $value))); $answer[$key] = htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); } } else { $answer = trim(stripslashes(str_replace(''', "'", $answer))); $answer = htmlspecialchars($answer, ENT_QUOTES, 'UTF-8'); } $values = explode(",", $question->response); foreach ($values as $key => $value) { $value = trim(stripslashes(str_replace(''', "'", $value))); $value = htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); $checked = is_array($answer) && in_array($value, $answer) ? ' checked="checked"' : ""; $value_id = str_replace(' ', '', $value) . '-' . $event_id . '_' . $attendee_number; $formatted = apply_filters('filter_hook_espresso_question_formatted_value', $value, $question); $html .= ' <li> <label for="' . $value_id . '" class="' . $class . ' checkbox-lbl"> <input id="' . $value_id . '" ' . $required_title . ' class="' . $required_class . $class . ' ' . $field_name . '" name="' . $XATT1 . $field_name . $XATT2 . $multi_name_adjust . '[]" type="checkbox" value="' . $value . '" ' . $checked . '/> <span>' . $formatted . '</span> </label> </li>'; } $html .= '</ul>'; $html .= '</div>'; } break; case "DROPDOWN": $question = apply_filters('filter_hook_espresso_form_question', $question); if (!empty($question->response)) { $dd_type = $question->system_name == 'state' ? 'name="state"' : 'name="' . $XATT1 . $field_name . $XATT2 . $multi_name_adjust . '"'; $html .= ' <div class="event_form_field" class="' . $class . '">' . $label; $html .= ' <select ' . $dd_type . ' ' . $required_title . ' class="' . $required_class . $class . ' ' . $field_name . '" id="DROPDOWN_' . $question->id . '-' . $event_id . '-' . $price_id . '-' . $attendee_number . '">'; $html .= ' <option value="">' . __('Select One', 'event_espresso') . "</option>"; $answer = trim(stripslashes(str_replace(''', "'", $answer))); $answer = htmlspecialchars($answer, ENT_QUOTES, 'UTF-8'); $values = explode(',', $question->response); foreach ($values as $key => $value) { $value = trim(stripslashes(str_replace(''', "'", $value))); $value = htmlspecialchars($value, ENT_QUOTES, 'UTF-8'); $selected = $value == $answer ? ' selected="selected"' : ""; $formatted = apply_filters('filter_hook_espresso_question_formatted_value', $value, $question); $html .= ' <option value="' . $value . '"' . $selected . '> ' . $formatted . '</option>'; } $html .= ' </select>'; $html .= ' </div>'; } break; default: break; } if (is_numeric($attendee_number)) { $attendee_number++; } return $html; }
function event_espresso_shopping_cart() { global $wpdb, $org_options; //session_destroy(); //echo "<pre>", print_r( $_SESSION ), "</pre>"; $events_in_session = isset($_SESSION['espresso_session']['events_in_session']) ? $_SESSION['espresso_session']['events_in_session'] : event_espresso_clear_session(TRUE); if (event_espresso_invoke_cart_error($events_in_session)) { return false; } if (count($events_in_session) > 0) { foreach ($events_in_session as $event) { // echo $event['id']; if (is_numeric($event['id'])) { $events_IN[] = $event['id']; } } $events_IN = implode(',', $events_IN); $sql = "SELECT e.* FROM " . EVENTS_DETAIL_TABLE . " e "; $sql = apply_filters('filter_hook_espresso_shopping_cart_SQL_select', $sql); $sql .= " WHERE e.id in ({$events_IN}) "; $sql .= " AND e.event_status != 'D' "; $sql .= " ORDER BY e.start_date "; //echo '<h4>$sql : ' . $sql . ' <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span></h4>'; $result = $wpdb->get_results($sql); ?> <form action='?page_id=<?php echo $org_options['event_page_id']; ?> ®event_action=load_checkout_page' method='post' id="event_espresso_shopping_cart"> <?php $counter = 1; //Counter that will keep track of the first events foreach ($result as $r) { //Check to see if the Members plugin is installed. if (function_exists('espresso_members_installed') && espresso_members_installed() == true && !is_user_logged_in()) { $member_options = get_option('events_member_settings'); if ($r->member_only == 'Y' || $member_options['member_only_all'] == 'Y') { event_espresso_user_login(); return; } } //If the event is still active, then show it. if (event_espresso_get_status($r->id) == 'ACTIVE') { $num_attendees = get_number_of_attendees_reg_limit($r->id, 'num_attendees'); //Get the number of attendees $available_spaces = get_number_of_attendees_reg_limit($r->id, 'available_spaces'); //Gets a count of the available spaces $number_available_spaces = get_number_of_attendees_reg_limit($r->id, 'number_available_spaces'); //Gets the number of available spaces //echo "<pre>$r->id, $num_attendees,$available_spaces,$number_available_spaces</pre>"; ?> <div class="multi_reg_cart_block event-display-boxes ui-widget" id ="multi_reg_cart_block-<?php echo $r->id; ?> "> <h3 class="event_title ui-widget-header ui-corner-top"><?php echo stripslashes_deep($r->event_name); ?> <span class="remove-cart-item"> <img class="ee_delete_item_from_cart" id="cart_link_<?php echo $r->id; ?> " alt="Remove this item from your cart" src="<?php echo EVENT_ESPRESSO_PLUGINFULLURL; ?> images/icons/remove.gif" /> </span> </h3> <div class="event-data-display ui-widget-content ui-corner-bottom"> <table id="cart-reg-details" class="event-display-tables"> <thead> <tr> <th><?php _e('Date', 'event_espresso'); ?> </th> <th><?php _e('Time', 'event_espresso'); ?> </th> </tr> </thead> <tbody> <tr> <td> <?php echo event_date_display($r->start_date, get_option('date_format')); ?> <?php /*_e( ' to ', 'event_espresso' ); ?> <?php echo event_date_display( $r->end_date, get_option( 'date_format' ) )*/ ?> </td> <td> <?php echo event_espresso_time_dropdown($r->id, 0, 1, $_SESSION['espresso_session']['events_in_session'][$r->id]['start_time_id']); ?> </td> </tr> <tr> <td colspan="2"> <?php echo event_espresso_group_price_dropdown($r->id, 0, 1, $_SESSION['espresso_session']['events_in_session'][$r->id]['price_id']); ?> </td> </tr> </tbody> </table> <input type="hidden" name="event_name[<?php echo $r->id; ?> ]" value="<?php echo $r->event_name; ?> " /> <input type="hidden" name="use_coupon[<?php echo $r->id; ?> ]" value="<?php echo $r->use_coupon_code; ?> " /> <input type="hidden" name="use_groupon[<?php echo $r->id; ?> ]" value="<?php echo $r->use_groupon_code; ?> " /> <?php do_action_ref_array('action_hook_espresso_add_to_multi_reg_cart_block', array($r)); ?> </div><!-- / .event-data-display --> </div><!-- / .event-display-boxes --> <?php $counter++; } } //echo $_SESSION['espresso_session']['groupon_used']; // printr( $_SESSION, '$_SESSION <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' ); ?> <div class="event-display-boxes ui-widget"> <div class="mer-event-submit ui-widget-content ui-corner-all"> <input type="hidden" name="event_name[<?php echo $r->id; ?> ]" value="<?php echo stripslashes_deep($r->event_name); ?> " /> <input type="hidden" name="regevent_action" value="load_checkout_page" /> <?php if (function_exists('event_espresso_coupon_payment_page') && isset($org_options['allow_mer_discounts']) && $org_options['allow_mer_discounts'] == 'Y') { //Discount code display ?> <div id="event_espresso_coupon_wrapper" class="clearfix event-data-display"> <label class="coupon-code" for="event_espresso_coupon_code"><?php _e('Enter Coupon Code ', 'event_espresso'); ?> </label> <input type="text" name="event_espresso_coupon_code" id ="event_espresso_coupon_code" value="<?php echo isset($_SESSION['espresso_session']['event_espresso_coupon_code']) ? $_SESSION['espresso_session']['event_espresso_coupon_code'] : ''; ?> " onkeydown="if(event.keyCode==13) {document.getElementById('event_espresso_refresh_total').focus(); return false;}" /> </div> <?php } ?> <?php if (function_exists('event_espresso_groupon_payment_page') && isset($org_options['allow_mer_vouchers']) && $org_options['allow_mer_vouchers'] == 'Y') { //Voucher code display ?> <div id="event_espresso_coupon_wrapper" class="clearfix event-data-display" > <label class="coupon-code" for="event_espresso_groupon_code"><?php _e('Enter Voucher Code ', 'event_espresso'); ?> </label> <input type="text" name="event_espresso_groupon_code" id ="event_espresso_groupon_code" value="<?php echo isset($_SESSION['espresso_session']['groupon_code']) ? $_SESSION['espresso_session']['groupon_code'] : ''; ?> " onkeydown="if(event.keyCode==13) {document.getElementById('event_espresso_refresh_total').focus(); return false;}" /> </div> <?php } ?> <div id="event_espresso_notifications" class="clearfix event-data-display" style=""></div> <div id="event_espresso_total_wrapper" class="clearfix event-data-display"> <?php do_action('action_hook_espresso_shopping_cart_before_total'); ?> <span class="event_total_price"> <?php _e('Total ', 'event_espresso') . $org_options['currency_symbol']; ?> <span id="event_total_price"><?php echo $_SESSION['espresso_session']['grand_total']; ?> </span> </span> <?php do_action('action_hook_espresso_shopping_cart_after_total'); ?> <p id="event_espresso_refresh_total"> <a id="event_espresso_refresh_total" style="cursor:pointer;"><?php _e('Refresh Total', 'event_espresso'); ?> </a> </p> </div> <p id="event_espresso_submit_cart"> <input type="submit" class="submit btn_event_form_submit ui-priority-primary ui-state-default ui-state-hover ui-state-focus ui-corner-all" name="Continue" id="event_espresso_continue_registration" value="<?php _e('Enter Attendee Information', 'event_espresso'); ?> »" /> </p> </div><!-- / .mer-event-submit --> </div><!-- / .event-display-boxes --> </form> <?php } }