Example #1
0
    function register_attendees($single_event_id = NULL, $event_id_sc = 0, $reg_form_only = false)
    {
        //Declare the $data object
        $data = (object) array('event' => NULL);
        do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, '');
        //Run code for the seating chart addon
        if (function_exists('espresso_seating_version')) {
            do_action('ee_seating_chart_css');
            do_action('ee_seating_chart_js');
            do_action('ee_seating_chart_flush_expired_seats');
        }
        global $wpdb, $org_options;
        if (isset($_REQUEST['ee']) && $_REQUEST['ee'] != '') {
            $_REQUEST['event_id'] = $_REQUEST['ee'];
        }
        $event_id = $event_id_sc != '0' ? $event_id_sc : $_REQUEST['event_id'];
        if (!empty($_REQUEST['event_id_time'])) {
            $pieces = explode('|', $_REQUEST['event_id_time'], 3);
            $event_id = $pieces[0];
            $start_time = $pieces[1];
            $time_id = $pieces[2];
            $time_selected = true;
        }
        //The following variables are used to get information about your organization
        $event_page_id = $org_options['event_page_id'];
        $Organization = stripslashes_deep($org_options['organization']);
        $Organization_street1 = $org_options['organization_street1'];
        $Organization_street2 = $org_options['organization_street2'];
        $Organization_city = $org_options['organization_city'];
        $Organization_state = $org_options['organization_state'];
        $Organization_zip = $org_options['organization_zip'];
        $contact = $org_options['contact_email'];
        $registrar = $org_options['contact_email'];
        $currency_format = isset($org_options['currency_format']) ? $org_options['currency_format'] : '';
        $message = $org_options['message'];
        //Build event queries
        $sql = "SELECT e.*, ese.start_time, ese.end_time ";
        if (isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y') {
            $sql .= ", v.name venue_name, v.address venue_address, v.address2 venue_address2, v.city venue_city, v.state venue_state, v.zip venue_zip, v.country venue_country, v.meta venue_meta ";
        }
        $sql .= " FROM " . EVENTS_DETAIL_TABLE . " e ";
        $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id = e.id ";
        if (isset($org_options['use_venue_manager']) && $org_options['use_venue_manager'] == 'Y') {
            $sql .= " LEFT JOIN " . EVENTS_VENUE_REL_TABLE . " r ON r.event_id = e.id LEFT JOIN " . EVENTS_VENUE_TABLE . " v ON v.id = r.venue_id ";
        }
        $sql .= " WHERE e.is_active='Y' ";
        $sql .= " AND e.event_status != 'D' ";
        //Get the ID of a single event
        if ($single_event_id != NULL) {
            //If a single event needs to be displayed, get its ID
            $sql .= " AND event_identifier = '" . $single_event_id . "' ";
        } else {
            $sql .= " AND e.id = '" . $event_id . "' LIMIT 0,1";
        }
        //Support for diarise
        if (!empty($_REQUEST['post_event_id'])) {
            $sql = "SELECT e.* FROM " . EVENTS_DETAIL_TABLE . ' e';
            $sql .= " LEFT JOIN " . EVENTS_START_END_TABLE . " ese ON ese.event_id = e.id ";
            $sql .= " WHERE post_id = '" . $_REQUEST['post_event_id'] . "' ";
            $sql .= " LIMIT 0,1";
        }
        $data->event = $wpdb->get_row($wpdb->prepare($sql, NULL), OBJECT);
        $num_rows = $wpdb->num_rows;
        //Build the registration page
        if ($num_rows > 0) {
            //These are the variables that can be used throughout the registration page
            //foreach ($events as $event) {
            global $this_event_id;
            $event_id = $data->event->id;
            $this_event_id = $event_id;
            $event_name = stripslashes_deep($data->event->event_name);
            $event_desc = stripslashes_deep($data->event->event_desc);
            $display_desc = $data->event->display_desc;
            if ($reg_form_only == true) {
                $display_desc = "N";
            }
            $display_reg_form = $data->event->display_reg_form;
            $event_address = $data->event->address;
            $event_address2 = $data->event->address2;
            $event_city = $data->event->city;
            $event_state = $data->event->state;
            $event_zip = $data->event->zip;
            $event_country = $data->event->country;
            $event_description = stripslashes_deep($data->event->event_desc);
            $event_identifier = $data->event->event_identifier;
            $event_cost = isset($data->event->event_cost) ? $data->event->event_cost : "0.00";
            $member_only = $data->event->member_only;
            $reg_limit = $data->event->reg_limit;
            $allow_multiple = $data->event->allow_multiple;
            $start_date = $data->event->start_date;
            $end_date = $data->event->end_date;
            $allow_overflow = $data->event->allow_overflow;
            $overflow_event_id = $data->event->overflow_event_id;
            //Venue details
            $venue_title = $data->event->venue_title;
            $venue_url = $data->event->venue_url;
            $venue_image = $data->event->venue_image;
            $venue_phone = $data->event->venue_phone;
            $venue_address = '';
            $venue_address2 = '';
            $venue_city = '';
            $venue_state = '';
            $venue_zip = '';
            $venue_country = '';
            global $event_meta;
            $event_meta = unserialize($data->event->event_meta);
            //Venue information
            if ($org_options['use_venue_manager'] == 'Y') {
                $event_address = $data->event->venue_address;
                $event_address2 = $data->event->venue_address2;
                $event_city = $data->event->venue_city;
                $event_state = $data->event->venue_state;
                $event_zip = $data->event->venue_zip;
                $event_country = $data->event->venue_country;
                //Leaving these variables intact, just in case people wnat to use them
                $venue_title = $data->event->venue_name;
                $venue_address = $data->event->venue_address;
                $venue_address2 = $data->event->venue_address2;
                $venue_city = $data->event->venue_city;
                $venue_state = $data->event->venue_state;
                $venue_zip = $data->event->venue_zip;
                $venue_country = $data->event->venue_country;
                global $venue_meta;
                $add_venue_meta = array('venue_title' => $data->event->venue_name, 'venue_address' => $data->event->venue_address, 'venue_address2' => $data->event->venue_address2, 'venue_city' => $data->event->venue_city, 'venue_state' => $data->event->venue_state, 'venue_country' => $data->event->venue_country);
                $venue_meta = isset($data->event->venue_meta) && $data->event->venue_meta != '' && (isset($add_venue_meta) && $add_venue_meta != '') ? array_merge(unserialize($data->event->venue_meta), $add_venue_meta) : '';
                //print_r($venue_meta);
            }
            $virtual_url = stripslashes_deep($data->event->virtual_url);
            $virtual_phone = stripslashes_deep($data->event->virtual_phone);
            //Address formatting
            $location = (!empty($event_address) ? $event_address : '') . (!empty($event_address2) ? '<br />' . $event_address2 : '') . (!empty($event_city) ? '<br />' . $event_city : '') . (!empty($event_state) ? ', ' . $event_state : '') . (!empty($event_zip) ? '<br />' . $event_zip : '') . (!empty($event_country) ? '<br />' . $event_country : '');
            //Google map link creation
            $google_map_link = espresso_google_map_link(array('address' => $event_address, 'city' => $event_city, 'state' => $event_state, 'zip' => $event_zip, 'country' => $event_country, 'text' => 'Map and Directions', 'type' => 'text'));
            $question_groups = unserialize($data->event->question_groups);
            $reg_start_date = $data->event->registration_start;
            $reg_end_date = $data->event->registration_end;
            $today = date("Y-m-d");
            if (isset($data->event->timezone_string) && $data->event->timezone_string != '') {
                $timezone_string = $data->event->timezone_string;
            } else {
                $timezone_string = get_option('timezone_string');
                if (!isset($timezone_string) || $timezone_string == '') {
                    $timezone_string = 'America/New_York';
                }
            }
            $t = time();
            $today = date_at_timezone("Y-m-d H:i A", $timezone_string, $t);
            //echo event_date_display($today, get_option('date_format'). ' ' .get_option('time_format')) . ' ' . $timezone_string;
            //echo espresso_ddtimezone_simple();
            $reg_limit = $data->event->reg_limit;
            $additional_limit = $data->event->additional_limit;
            //If the coupon code system is intalled then use it
            $use_coupon_code = $data->event->use_coupon_code;
            //If the groupon code addon is installed, then use it
            $use_groupon_code = $data->event->use_groupon_code;
            //Set a default value for additional limit
            if ($additional_limit == '') {
                $additional_limit = '5';
            }
            $num_attendees = get_number_of_attendees_reg_limit($event_id, 'num_attendees');
            //Get the number of attendees
            $available_spaces = get_number_of_attendees_reg_limit($event_id, 'available_spaces');
            //Gets a count of the available spaces
            $number_available_spaces = get_number_of_attendees_reg_limit($event_id, 'number_available_spaces');
            //Gets the number of available spaces
            //echo $number_available_spaces;
            global $all_meta;
            $all_meta = array('event_id' => $event_id, 'event_name' => stripslashes_deep($event_name), 'event_desc' => stripslashes_deep($event_desc), 'event_address' => $event_address, 'event_address2' => $event_address2, 'event_city' => $event_city, 'event_state' => $event_state, 'event_zip' => $event_zip, 'event_country' => $event_country, 'venue_title' => $venue_title, 'venue_address' => $venue_address, 'venue_address2' => $venue_address2, 'venue_city' => $venue_city, 'venue_state' => $venue_state, 'venue_country' => $venue_country, 'location' => $location, 'is_active' => $data->event->is_active, 'event_status' => $data->event->event_status, 'contact_email' => empty($data->event->alt_email) ? $org_options['contact_email'] : $data->event->alt_email, 'start_time' => empty($data->event->start_time) ? '' : $data->event->start_time, 'end_time' => empty($data->event->end_time) ? '' : $data->event->end_time, 'registration_startT' => $data->event->registration_startT, 'registration_start' => $data->event->registration_start, 'registration_endT' => $data->event->registration_endT, 'registration_end' => $data->event->registration_end, 'start_date' => event_espresso_no_format_date($start_date, get_option('date_format')), 'end_date' => event_date_display($end_date, get_option('date_format')), 'google_map_link' => $google_map_link);
            //print_r($all_meta);
            //This function gets the status of the event.
            $is_active = array();
            $is_active = event_espresso_get_is_active(0, $all_meta);
            //echo '<p>'.print_r(event_espresso_get_is_active($event_id, $all_meta)).'</p>';;
            if ($org_options['use_captcha'] == 'Y' && empty($_REQUEST['edit_details'])) {
                ?>
                <script type="text/javascript">
                    var RecaptchaOptions = {
                        theme : '<?php 
                echo $org_options['recaptcha_theme'] == '' ? 'red' : $org_options['recaptcha_theme'];
                ?>
',
                        lang : '<?php 
                echo $org_options['recaptcha_language'] == '' ? 'en' : $org_options['recaptcha_language'];
                ?>
'
                    };
                </script>
                <?php 
            }
            //This is the start of the registration form. This is where you can start editing your display.
            //(Shows the regsitration form if enough spaces exist)
            if ($num_attendees >= $reg_limit) {
                ?>
                <div class="espresso_event_full event-display-boxes" id="espresso_event_full-<?php 
                echo $event_id;
                ?>
">
                    <h3 class="event_title"><?php 
                echo stripslashes_deep($event_name);
                ?>
</h3>
                    <div class="event-messages">
                        <p class="event_full"><strong><?php 
                _e('We are sorry but this event has reached the maximum number of attendees!', 'event_espresso');
                ?>
</strong></p>
                        <p class="event_full"><strong><?php 
                _e('Please check back in the event someone cancels.', 'event_espresso');
                ?>
</strong></p>
                        <p class="num_attendees"><?php 
                _e('Current Number of Attendees:', 'event_espresso');
                ?>
 <?php 
                echo $num_attendees;
                ?>
</p>
                    </div>
                <?php 
                $num_attendees = get_number_of_attendees_reg_limit($event_id, 'num_attendees');
                //Get the number of attendees. Please visit http://eventespresso.com/forums/?p=247 for available parameters for the get_number_of_attendees_reg_limit() function.
                if ($num_attendees >= $reg_limit && ($allow_overflow == 'Y' && $overflow_event_id != 0)) {
                    ?>
                        <p id="register_link-<?php 
                    echo $overflow_event_id;
                    ?>
" class="register-link-footer"><a class="a_register_link ui-button ui-button-big ui-priority-primary ui-state-default ui-state-hover ui-state-focus ui-corner-all" id="a_register_link-<?php 
                    echo $overflow_event_id;
                    ?>
" href="<?php 
                    echo espresso_reg_url($overflow_event_id);
                    ?>
" title="<?php 
                    echo stripslashes_deep($event_name);
                    ?>
"><?php 
                    _e('Join Waiting List', 'event_espresso');
                    ?>
</a></p>
                    <?php 
                }
                ?>
                </div>

                    <?php 
            } else {
                $member_options = get_option('events_member_settings');
                //echo "<pre>".print_r($member_options,true)."</pre>";
                //If enough spaces exist then show the form
                //Check to see if the Members plugin is installed.
                if (function_exists('espresso_members_installed') && espresso_members_installed() == true && !is_user_logged_in() && ($member_only == 'Y' || $member_options['member_only_all'] == 'Y')) {
                    event_espresso_user_login();
                } else {
                    //Serve up the registration form
                    //As of version 3.0.17 the registration details have been moved to registration_form.php
                    require 'registration_page_display.php';
                }
            }
            //End if ($num_attendees >= $reg_limit) (Shows the regsitration form if enough spaces exist)
        } else {
            //If there are no results from the query, display this message
            echo '<h3>' . __('This event has expired or is no longer available.', 'event_espresso') . '</h3>';
        }
        echo espresso_registration_footer();
        //Check to see how many database queries were performed
        //echo '<p>Database Queries: ' . get_num_queries() .'</p>';
    }
Example #2
0
     * 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('&#039;', "'", $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('&#039;', "'", $answer)));
                    $answer = htmlspecialchars($answer, ENT_QUOTES, 'UTF-8');
                    foreach ($values as $key => $value) {
                        $value = trim(stripslashes(str_replace('&#039;', "'", $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('&#039;', "'", $value)));
                            $answer[$key] = htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
                        }
                    } else {
                        $answer = trim(stripslashes(str_replace('&#039;', "'", $answer)));
                        $answer = htmlspecialchars($answer, ENT_QUOTES, 'UTF-8');
                    }
                    $values = explode(",", $question->response);
                    foreach ($values as $key => $value) {
                        $value = trim(stripslashes(str_replace('&#039;', "'", $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('&#039;', "'", $answer)));
                    $answer = htmlspecialchars($answer, ENT_QUOTES, 'UTF-8');
                    $values = explode(',', $question->response);
                    foreach ($values as $key => $value) {
                        $value = trim(stripslashes(str_replace('&#039;', "'", $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;
    }
Example #5
0
    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'];
            ?>
&regevent_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');
            ?>
&nbsp;&raquo;" />
			</p>
			
		</div><!-- / .mer-event-submit -->
	</div><!-- / .event-display-boxes -->
</form>
<?php 
        }
    }