Skip to content

Instantly share code, notes, and snippets.

@sidharrell
Created February 4, 2014 19:54
Show Gist options
  • Save sidharrell/8811078 to your computer and use it in GitHub Desktop.
Save sidharrell/8811078 to your computer and use it in GitHub Desktop.
Add a price selector for the add new attendee in the admin
// unfortunately, the function does not currently have a pluggable function wrapper,
// so the best course of action right now is to add the pluggable function wrapper in core,
// then add the overriding function into a custom function holding location.
// so in includes/admin-reports/add_new_attendees.php add this as line 2:
if (!function_exists('add_new_attendee')) {
// then add the closing brace at the end of the file:
}
// that way, whenever the client updates and loses the custom functionality, all you need to do is
// add the pluggable function wrapper back in. And in a future update, we will probably add the
// pluggable function wrapper in.
// that done, you can add this to a custom plugin, or uploads/espresso/custom_functions.php:
function add_new_attendee($event_id){
if (isset($_REQUEST['regevent_action_admin']) && $_REQUEST['regevent_action_admin']== 'post_attendee'){
require_once(EVENT_ESPRESSO_PLUGINFULLPATH."includes/functions/attendee_functions.php");
require_once(EVENT_ESPRESSO_PLUGINFULLPATH."includes/process-registration/add_attendees_to_db.php");
$attendee_id = event_espresso_add_attendees_to_db();
if ( $attendee_id ) {
// SEND CONFIRMATION EMAIL MESSAGES
event_espresso_email_confirmations(array('attendee_id' => $attendee_id, 'send_admin_email' => 'true', 'send_attendee_email' => 'true'));
//echo $attendee_id;
?>
<div id="message" class="updated fade">
<p><strong>
<?php _e('Added Attendee to Database','event_espresso'); ?>
</strong></p>
</div>
<?php
} else {
global $notifications;
$error_msg = implode( $notifications['error'], '<br />');
?>
<div id="message" class="error">
<p>
<strong><?php echo $error_msg; ?></strong>
</p>
</div>
<?php
}
}
wp_register_script('reCopy', (EVENT_ESPRESSO_PLUGINFULLURL . "scripts/reCopy.js"), false, '1.1.0');
wp_print_scripts('reCopy');
global $wpdb;
$sql = "SELECT * FROM " .EVENTS_DETAIL_TABLE. " WHERE is_active='Y' AND event_status != 'D' AND id = '" . $event_id . "' LIMIT 0,1";
//Build the registration page
if ($wpdb->get_results($sql)){
$events = $wpdb->get_results($sql);
//These are the variables that can be used throughout the regsitration page
foreach ($events as $event){
$event_id = $event->id;
$event_name = stripslashes($event->event_name);
$event_desc = stripslashes($event->event_desc);
$display_desc = $event->display_desc;
$event_address = $event->address;
$event_city = $event->city;
$event_state = $event->state;
$event_zip = $event->zip;
$event_description = stripslashes($event->event_desc);
$event_identifier = $event->event_identifier;
$event_cost = isset($event->event_cost) ? $event->event_cost:'';
$member_only = isset($event->member_only) ? $event->member_only:'';
$reg_limit = isset($event->reg_limit) ? $event->reg_limit:'';
$allow_multiple = $event->allow_multiple;
$start_date = $event->start_date;
$end_date = $event->end_date;
$reg_limit=$event->reg_limit;
$additional_limit = $event->additional_limit;
$is_active = array();
$question_groups = unserialize($event->question_groups);
//This function gets the status of the event.
$is_active = event_espresso_get_is_active($event_id);
//If the coupon code system is intalled then use it
if (function_exists('event_espresso_coupon_registration_page')) {
$use_coupon_code = $event->use_coupon_code;
}
//If the groupon code addon is installed, then use it
if (function_exists('event_espresso_groupon_payment_page')) {
$use_groupon_code = $event->use_groupon_code;
}
//Set a default value for additional limit
if ($additional_limit == ''){
$additional_limit = '5';
}
}//End foreach ($events as $event)
//This is the start of the registration form. This is where you can start editing your display.
$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
?>
<script>$jaer = jQuery.noConflict();
jQuery(document).ready(function($jaer) {
jQuery(function(){
//Registration form validation
jQuery('#espresso-admin-add-new-attendee-frm').validate();
});
});
</script>
<div class="metabox-holder">
<div class="postbox">
<div id="espresso-admin-add-new-attendee-dv">
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']?>" onsubmit="return validateForm(this)" id="registration_form" class="espresso_form">
<?php wp_nonce_field('reg_nonce', 'reg_form_nonce');?>
<h3 class="h3_event_title" id="h3_event_title-<?php echo $event_id;?>"><?php echo $event_name?></h3>
<div class="padding">
<div class="inside">
<fieldset>
<h4 class="reg-quest-title section-title"><?php _e('Event Dates and Times','event_espresso'); ?></h4>
<p class="start_date">
<span class="span_event_date_label"><?php _e('Start Date:','event_espresso'); ?></span><span class="span_event_date_value"><?php echo event_date_display($start_date)?></span>
</p>
<p class="event_time">
<?php
$time_selected ='';
//This block of code is used to display the times of an event in either a dropdown or text format.
if (!empty($time_selected) && $time_selected == true){//If the customer is coming from a page where the time was preselected.
echo event_espresso_display_selected_time($time_id);//Optional parameters start, end, default
}else if ($time_selected == false){
echo event_espresso_time_dropdown($event_id);
}//End time selected
$results = $wpdb->get_results( $wpdb->prepare("SELECT price_type, member_price_type FROM " . EVENTS_PRICES_TABLE . " WHERE event_id='%d' ORDER BY id ASC", $event_id) );
echo '<label class="price_select" for="price_option-' . $event_id . '">' . __('Choose a Ticket: ', 'event_espresso') . '</label>';
echo '<select name="seat_id" id="price_option-' . $event_id . '">';
echo '<option value="' . __('Admin', 'event_espresso') . '">' . stripslashes_deep(__('Admin', 'event_espresso')) . '</option>';
foreach($results as $price_line) {
if(!empty($price_line->price_type)) {
echo '<option value="' . $price_line->price_type . '">' . stripslashes_deep($price_line->price_type) . '</option>';
}
if(!empty($price_line->member_price_type)) {
echo '<option value="' . $price_line->member_price_type . '">' . stripslashes_deep($price_line->member_price_type) . '</option>';
}
}
echo '</select>';
?>
</p>
<?php
// Added for seating chart addon
do_action('ee_seating_chart_css');
do_action('ee_seating_chart_js');
do_action('ee_seating_chart_flush_expired_seats');
do_action( 'espresso_seating_chart_select', $event_id);
?>
</fieldset>
<?php
echo event_espresso_add_question_groups( $question_groups, '', null, 0, array('admin_only'=>true), 'inline' );
//Coupons
if (function_exists('event_espresso_coupon_registration_page')) {
echo event_espresso_coupon_registration_page($use_coupon_code, $event_id);
}//End coupons display
//Groupons
if (function_exists('event_espresso_groupon_registration_page')) {
echo event_espresso_groupon_registration_page($use_groupon_code, $event_id);
}//End groupons display
?>
<p class="event_form_field">
<label for="event_cost" class="inline">
<?php _e('Amount Paid:','event_espresso'); ?>
</label>
<input tabindex="9" type="text" maxlength="10" size="15" name="event_cost" id="event_cost-<?php echo $event_id;?>" <?php echo $event_cost ? 'value="' . $event_cost . '"' : ""; ?> />
<input type="hidden" name="regevent_action_admin" id="regevent_action-<?php echo $event_id;?>" value="post_attendee" />
<input type="hidden" name="event_id" id="event_id-<?php echo $event_id;?>" value="<?php echo $event_id;?>" />
<input type="hidden" name="admin" value="true" />
</p>
<?php echo event_espresso_additional_attendees( $event_id, $additional_limit, $number_available_spaces, __('Number of Tickets', 'event_espresso'), true, 'admin', 'inline' ); ?>
<p class="event_form_submit" id="event_form_submit-<?php echo $event_id;?>">
<input class="btn_event_form_submit button-primary" id="event_form_field-<?php echo $event_id;?>" type="submit" name="Submit" value="<?php _e('Submit','event_espresso');?>" />
</p>
</div>
</div>
</form>
</div>
</div>
</div>
<?php
event_list_attendees();
}//End Build the registration page
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment