Advertisement
Beee

#_REGOSTART

Aug 4th, 2017
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.84 KB | None | 0 0
  1. function em_rego_start( $replace, $EM_Event, $result ) {
  2.  
  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.         $now       = date( 'Y-m-d  H:i:s', strtotime( $tz_diff ) );
  9.         $regostart = '';
  10.         $min       = 0;
  11.         $max       = 0;
  12.  
  13.         if ( ! $EM_Event->event_rsvp && get_option( 'dbem_rsvp_enabled' ) ) { // if no bookings are enabled
  14.  
  15.             $replace = 't.b.a.';
  16.  
  17.         } else { // if bookings are enabled
  18.  
  19.             $endstring = 0;
  20.             if ( $EM_Event->event_rsvp_date ) {
  21.                 $rsvp        = '';
  22.                 $rsvp        .= $EM_Event->event_rsvp_date;
  23.                 $rsvp        .= ' ';
  24.                 $rsvp        .= $EM_Event->event_rsvp_time;
  25.                 $endstring   = strtotime( $rsvp );
  26.             }
  27.             $nowstring   = strtotime( $now );
  28.  
  29.             if ( $nowstring > $endstring ) { // if end date has passed
  30.                 $replace = 'Closed';
  31.             } else {
  32.  
  33.                 // loop through tickets
  34.                 foreach ( $EM_Event->get_tickets()->tickets as $EM_Ticket ) {
  35.                     if ( $EM_Ticket->is_available() || get_option( 'dbem_bookings_tickets_show_unavailable' ) ) {
  36.                         if ( current_user_can( 'access_s2member_level2' ) ) {
  37.                             if ( $EM_Ticket->ticket_start < $min || $min == 0 ) {
  38.                                 $min = $EM_Ticket->ticket_start;
  39.                             }
  40.                         } else {
  41.                             if ( $EM_Ticket->ticket_start > $min ) {
  42.                                 $min = $EM_Ticket->ticket_start;
  43.                             }
  44.                         }
  45.                     }
  46.                 }
  47.                 $regostart   = $min;
  48.                 $date_format = date( "j/n @ H:i", strtotime( $regostart ) );
  49.                 $startstring = strtotime( $regostart );
  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.  
  57.                             $available = 0;
  58.  
  59.                             // to create: if ticket is closed but rsvp date is not passed
  60.                             $get_places     = $EM_Event->event_spaces; // total spaces
  61.                             $booked_places  = $EM_Event->get_bookings()->get_booked_spaces();   // confirmed bookings
  62.                             $pending_places = $EM_Event->get_bookings()->get_pending_spaces();  // pending spaces
  63.                             $available      = $get_places - $booked_places - $pending_places;
  64.                             $is_open        = $EM_Event->get_bookings()->is_open(); // whether there are any available tickets right now
  65.                             if ( $available > 0 ) { // if available tickets is more than 0
  66.                                 if ( is_user_logged_in() && ! current_user_can( 'access_s2member_level1' ) ) {
  67.                                     // $replace = 'Now open, but you need to renew your IDF membership first.';
  68.                                     if ( date( 'Y-m-d' ) >= $EM_Event->event_start_date ) {
  69.                                         $replace = 'Closed';
  70.                                     } else {
  71.                                         $replace = 'Open *';
  72.                                     }
  73.                                 } else if ( current_user_can( 'access_s2member_level1' ) ) {
  74.                                     if ( $is_open ) {
  75.                                         $replace = 'Open';
  76.                                     } else {
  77.                                         $replace = 'Closed';
  78.                                     }
  79.                                 } else {
  80.                                     if ( date( 'Y-m-d' ) >= $EM_Event->event_start_date ) {
  81.                                         $replace = 'Closed';
  82.                                     } else {
  83.                                         $replace = 'Open';
  84.                                     }
  85.                                 }
  86.  
  87.                             } else {
  88.                                 $replace = '<b>Sold out !</b>';
  89.                             }
  90.                         }
  91.                     } else { // if start date hasn't passed
  92.  
  93.                         $replace = $date_format;
  94.  
  95.                     }
  96.                 } else {
  97.                     $replace = "t.b.a.";
  98.                 }
  99.  
  100.             }
  101.  
  102.         }
  103.     }
  104.  
  105.     return $replace;
  106. }
  107. add_filter( 'em_event_output_placeholder', 'em_rego_start', 1, 4 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement