Advertisement
Beee

bookingform.php

May 16th, 2015
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.27 KB | None | 0 0
  1. <?php  
  2. /* This is where the booking form is generated. */
  3.  
  4. /* @var $EM_Event EM_Event */  
  5. global $EM_Notices;
  6. // count tickets and available tickets
  7. $tickets_count                      = count($EM_Event->get_bookings()->get_tickets()->tickets);
  8. $available_tickets_count    = count($EM_Event->get_bookings()->get_available_tickets());
  9. // decide whether user can book, event is open for bookings etc.
  10. $can_book                               = is_user_logged_in() || (get_option('dbem_bookings_anonymous') && !is_user_logged_in());
  11. $is_open                                    = $EM_Event->get_bookings()->is_open(); // whether there are any available tickets right now
  12. $show_tickets                       = true;
  13. // if user is logged out, check for member tickets that might be available, since we should ask them to log in instead of saying 'bookings closed'
  14. if ( !$is_open && !is_user_logged_in() && $EM_Event->get_bookings()->is_open(true) ){
  15.     $is_open                = true;
  16.     $can_book           = false;
  17.         $show_tickets       = true;
  18. }
  19. ?>
  20. <div id="em-booking" class="em-booking <?php if ( get_option('dbem_css_rsvp') ) echo 'css-booking'; ?>">
  21.     <?php
  22.         // We are firstly checking if the user has already booked a ticket at this event, if so offer a link to view their bookings.
  23.         $EM_Booking = $EM_Event->get_bookings()->has_booking();
  24.     ?>
  25.     <?php if ( is_object($EM_Booking) && !get_option('dbem_bookings_double') ) : // Double bookings not allowed ?>
  26.         <p>
  27.             <?php echo get_option('dbem_bookings_form_msg_attending'); ?>
  28.             <a href="<?php echo em_get_my_bookings_url(); ?>"><?php echo get_option('dbem_bookings_form_msg_bookings_link'); ?></a>
  29.         </p>
  30.     <?php elseif ( !$EM_Event->rsvp ) : // bookings not enabled ?>
  31.         <p><?php echo get_option('dbem_bookings_form_msg_disabled'); ?></p>
  32.     <?php elseif ( $EM_Event->get_bookings()->get_available_spaces() <= 0 ) : ?>
  33.         <p><?php echo get_option('dbem_bookings_form_msg_full'); ?></p>
  34.     <?php elseif ( !$is_open ) : // if no tickets are available ?>
  35.         <?php
  36.             // remove bookings closed message from database
  37.             // echo "<p>" . get_option('dbem_bookings_form_msg_closed') , "</p>";
  38.  
  39.             // add ticket table
  40.             do_action('em_booking_form_before_tickets', $EM_Event); // do not delete
  41.             em_locate_template('forms/bookingform/tickets-list.php',true, array('EM_Event'=>$EM_Event));
  42.             do_action('em_booking_form_after_tickets', $EM_Event); // do not delete
  43.  
  44.             // custom bookings closed message
  45.             global $EM_Event;
  46.         $bookingsstart      = "";
  47.         $now                            = date("Y-m-d H:i:s");    
  48.         $bookingsstart      = $EM_Ticket->ticket_start; // last (cheapest) ticket
  49.         $rsvp                           = '';
  50.         $rsvp                           .= $EM_Event->event_rsvp_date;
  51.         $rsvp                           .= ' ';
  52.         $rsvp                           .= $EM_Event->event_rsvp_time;
  53.         $countdownformat    = date("d M Y H:i:s", strtotime($bookingsstart));
  54.         $nowstring              = strtotime($now);
  55.         $startstring            = strtotime($bookingsstart);
  56.         $endstring              = strtotime($rsvp);
  57.  
  58.         if ( !empty($startstring) ) { // if start date is set
  59.             if ( $nowstring > $startstring ) { // if start date has passed
  60.                 if ( $nowstring > $endstring ) { // if end date has passed
  61.                     $regstatus = 'Sorry, you\'re too late. Registrations are closed.';
  62.                 } else { // if end date has not passed yet
  63.                    
  64.                     /* if ( !current_user_can('access_s2member_level1') ) {
  65.                     } else {
  66.                     } */
  67.                    
  68.                     if ( is_user_logged_in() ) {
  69.                         $regstatus = 'Registration is now open for paying members, but it seems you are not a paying member (anymore). You need to renew your membership before you can register. [ add upgrade link ]';
  70.                     } else {
  71.                         $regstatus = 'Registration is now open for registered, paying members. Make sure you are <a href="'.home_url().'/wp-login.php/" title="Login">logged in</a> and have paid for your IDF membership fee to register for this event.';
  72.                     }
  73.  
  74.                 }
  75.             } else { // if start date hasn't passed
  76.                 $regstatus = 'Registration hasn\'t opened yet for this event. Registration will start ';
  77.                 $regstatus .= do_shortcode('[fergcorp_cdt_single date="'.$countdownformat.' CEST"]');
  78.                 $regstatus .= '.';
  79.             }
  80.         }
  81.         echo "<p>" . $regstatus . "</p>";
  82.  
  83.             // add login form
  84.             if ( !is_user_logged_in() && get_option('dbem_bookings_login_form') ) {
  85.                 // User is not logged in, show login form (enabled on settings page)
  86.                 // em_locate_template('forms/bookingform/login.php',true, array('EM_Event'=>$EM_Event));
  87.             }
  88.         ?>
  89.     <?php else : ?>
  90.         <?php echo $EM_Notices; ?>
  91.         <?php if ( $tickets_count > 0 ) : ?>
  92.             <?php // Tickets exist, so we show a booking form. ?>
  93.             <form class="em-booking-form" name='booking-form' method='post' action='<?php echo apply_filters('em_booking_form_action_url',$_SERVER['REQUEST_URI']); ?>#em-booking'>
  94.                 <input type='hidden' name='action' value='booking_add'/>
  95.                 <input type='hidden' name='event_id' value='<?php echo $EM_Event->event_id; ?>'/>
  96.                 <input type='hidden' name='_wpnonce' value='<?php echo wp_create_nonce('booking_add'); ?>'/>
  97.                 <?php
  98.                     // Tickets Form
  99.                     if ( $show_tickets && ($can_book || get_option('dbem_bookings_tickets_show_loggedout')) && ($tickets_count > 1 || get_option('dbem_bookings_tickets_single_form')) ) { // show if more than 1 ticket, or if in forced ticket list view mode
  100.                         do_action('em_booking_form_before_tickets', $EM_Event); // do not delete
  101.                         // Show multiple tickets form to user, or single ticket list if settings enable this
  102.                         // If logged out, can be allowed to see this in settings witout the register form
  103.                         em_locate_template('forms/bookingform/tickets-list.php',true, array('EM_Event'=>$EM_Event));
  104.                         do_action('em_booking_form_after_tickets', $EM_Event); // do not delete
  105.                         $show_tickets = false;
  106.                     }
  107.                 ?>
  108.                 <?php if ( $can_book ) : ?>
  109.                     <div class='em-booking-form-details'>
  110.                         <?php
  111.                             if( $show_tickets && $available_tickets_count == 1 && !get_option('dbem_bookings_tickets_single_form') ){
  112.                                 do_action('em_booking_form_before_tickets', $EM_Event); // do not delete
  113.                                 // show single ticket form, only necessary to show to users able to book (or guests if enabled)
  114.                                 $EM_Ticket = $EM_Event->get_bookings()->get_available_tickets()->get_first();
  115.                                 em_locate_template('forms/bookingform/ticket-single.php',true, array('EM_Event'=>$EM_Event, 'EM_Ticket'=>$EM_Ticket));
  116.                                 do_action('em_booking_form_after_tickets', $EM_Event); // do not delete
  117.                             }
  118.                         ?>
  119.                         <?php
  120.                             do_action('em_booking_form_before_user_details', $EM_Event);
  121.                             if ( has_action('em_booking_form_custom') ) {
  122.                                 // Pro Custom Booking Form. You can create your own custom form by hooking into this action and setting the option above to true
  123.                                 do_action('em_booking_form_custom', $EM_Event); // do not delete
  124.                             } else {
  125.                                 // If you just want to modify booking form fields, you could do so here
  126.                                 em_locate_template('forms/bookingform/booking-fields.php',true, array('EM_Event'=>$EM_Event));
  127.                             }
  128.                             do_action('em_booking_form_after_user_details', $EM_Event);
  129.                             do_action('em_booking_form_footer', $EM_Event); // do not delete
  130.                         ?>
  131.                         <div class="em-booking-buttons">
  132.                             <?php if( preg_match('/https?:\/\//',get_option('dbem_bookings_submit_button')) ): // Settings have an image url (we assume). Use it here as the button.?>
  133.                             <input type="image" src="<?php echo get_option('dbem_bookings_submit_button'); ?>" class="em-booking-submit" id="em-booking-submit" />
  134.                             <?php else: // Display normal submit button ?>
  135.                             <input type="submit" class="em-booking-submit" id="em-booking-submit" value="<?php echo get_option('dbem_bookings_submit_button'); ?>" />
  136.                             <?php endif; ?>
  137.                         </div>
  138.                         <?php do_action('em_booking_form_footer_after_buttons', $EM_Event); //do not delete ?>
  139.                     </div>
  140.                 <?php else: ?>
  141.                 <p>Show ticket table here</p>
  142.                     <p class="em-booking-form-details"><?php echo get_option('dbem_booking_feedback_log_in'); ?></p>
  143.                 <?php endif; ?>
  144.             </form>
  145.             <?php
  146.             if( !is_user_logged_in() && get_option('dbem_bookings_login_form') ) {
  147.                 // User is not logged in, show login form (enabled on settings page)
  148.                 em_locate_template('forms/bookingform/login.php',true, array('EM_Event'=>$EM_Event));
  149.             }
  150.             ?>
  151.             <br class="clear" style="clear:left;" />  
  152.         <?php endif; ?>
  153.     <?php endif; ?>
  154. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement