Advertisement
Beee

custom bookingsstart placeholder

May 17th, 2017
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.15 KB | None | 0 0
  1. // create #_REGOSTART (for in event list)
  2. function em_rego_start( $replace, $EM_Event, $result ) {
  3.     if ( $result == '#_REGOSTART' ) {
  4.  
  5.         // IMPORTANT : DST OFFSET MUST BE SET
  6.         $tz_offset = get_option( 'gmt_offset' );
  7.         $tz_diff   = '+' . get_option( 'gmt_offset' ) . ' hours';
  8.         if ( $tz_offset == 1 ) {
  9.             $dst = 'CET';
  10.         } else if ( $tz_offset == 2 ) {
  11.             $dst = 'CEST';
  12.         }
  13.         $now = date( 'Y-m-d  H:i:s', strtotime( $tz_diff ) );
  14.  
  15.         global $EM_Event;
  16.         $regostart = "";
  17.         $min       = 0;
  18.         $max       = 0;
  19.         foreach ( $EM_Event->get_tickets()->tickets as $EM_Ticket ) {
  20.             /* @var $EM_Ticket EM_Ticket */
  21.             if ( $EM_Ticket->is_available() || get_option( 'dbem_bookings_tickets_show_unavailable' ) ) {
  22.                 if ( current_user_can( 'access_s2member_level2' ) ) {
  23.                     if ( $EM_Ticket->ticket_start < $min || $min == 0 ) {
  24.                         $min = $EM_Ticket->ticket_start;
  25.                     }
  26.                 } else {
  27.                     if ( $EM_Ticket->ticket_start > $min ) {
  28.                         $min = $EM_Ticket->ticket_start;
  29.                     }
  30.                 }
  31.             }
  32.         }
  33.         // if ( $min === false ) { $min = 0; }
  34.         $regostart = $min;
  35.  
  36.         if ( ! $EM_Event->event_rsvp && get_option( 'dbem_rsvp_enabled' ) ) { // if no bookings are enabled
  37.  
  38.             $replace = 't.b.a.';
  39.  
  40.         } else { // if bookings are enabled
  41.  
  42.             $rsvp        = '';
  43.             $rsvp        .= $EM_Event->event_rsvp_date;
  44.             $rsvp        .= ' ';
  45.             $rsvp        .= $EM_Event->event_rsvp_time;
  46.             $date_format = date( "j/n @ H:i", strtotime( $regostart ) );
  47.             $nowstring   = strtotime( $now );
  48.             $startstring = strtotime( $regostart );
  49.             $endstring   = strtotime( $rsvp );
  50.  
  51.             if ( ! empty( $startstring ) ) { // if start date is set
  52.                 if ( $nowstring > $startstring ) { // if start date has passed
  53.                     if ( $nowstring > $endstring ) { // if end date has passed
  54.                         $replace = 'Closed';
  55.                     } else {
  56.                         // to create: if ticket is closed but rsvp date is not passed
  57.                         $get_places     = $EM_Event->get_spaces(); // total spaces
  58.                         $booked_places  = $EM_Event->get_bookings()->get_booked_spaces();   // confirmed bookings
  59.                         $pending_places = $EM_Event->get_bookings()->get_pending_spaces();  // pending spaces
  60.                         $available      = $get_places - $booked_places - $pending_places;
  61.                         $is_open        = $EM_Event->get_bookings()->is_open(); // whether there are any available tickets right now
  62.                         if ( $available > 0 ) { // if available tickets is more than 0
  63.                             if ( is_user_logged_in() && ! current_user_can( 'access_s2member_level1' ) ) {
  64.                                 // $replace = 'Now open, but you need to renew your IDF membership first.';
  65.                                 $replace = 'Open *';
  66.                             } else if ( current_user_can( 'access_s2member_level1' ) ) {
  67.                                 if ( $is_open ) {
  68.                                     $replace = 'Open';
  69.                                 } else {
  70.                                     $replace = 'Closed';
  71.                                 }
  72.                             } else {
  73.                                 $replace = 'Open';
  74.                             }
  75.  
  76.                         } else {
  77.                             $replace = '<b>Sold out !</b>';
  78.                         }
  79.                     }
  80.                 } else { // if start date hasn't passed
  81.  
  82.                     // IMPORTANT : DST MUST BE SET CORRECTLY
  83.                     $replace = $date_format;
  84.  
  85.                 }
  86.             } else {
  87.                 $replace = "t.b.a.";
  88.             }
  89.         }
  90.     }
  91.     return $replace;
  92. }
  93. add_filter('em_event_output_placeholder','em_rego_start', 1, 4);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement