Exemplo n.º 1
0
 /**
  * Add custom query modification to the pre_get_posts hook as necessary for PRO.
  *
  * @param WP_Query $query The current query object.
  *
  * @return WP_Query The modified query object.
  */
 public function pre_get_posts($query)
 {
     if ($query->is_single() && $query->get('eventDate')) {
         $this->set_post_id_for_recurring_event_query($query);
     }
     if (!empty($query->tribe_is_event_pro_query)) {
         switch ($query->query_vars['eventDisplay']) {
             case 'week':
                 $start_date = tribe_get_first_week_day($query->get('eventDate'));
                 $end_date = tribe_get_last_week_day($start_date);
                 // if the setting to hide weekends is true
                 if (tribe_get_option('week_view_hide_weekends', false) == true) {
                     $start_of_week = get_option('start_of_week');
                     // check if the week is set to start on a weekend day
                     // If so, start on the next weekday.
                     // 0 = Sunday, 6 = Saturday
                     if ($start_of_week == 0 || $start_of_week == 6) {
                         $start_date = date(Tribe__Events__Date_Utils::DBDATEFORMAT, strtotime($start_date . ' +1 Weekday'));
                     }
                     // If the week starts on saturday or friday
                     // sunday and/or saturday would be on the other end, so we need to end the previous weekday
                     // 5 = Friday, 6 = Saturday
                     if ($start_of_week == 5 || $start_of_week == 6) {
                         $end_date = date(Tribe__Events__Date_Utils::DBDATEFORMAT, strtotime($end_date . ' -1 Weekday'));
                     }
                 }
                 // if the setting to hide weekends is on
                 // need to filter the query
                 // need to only show 5 days on the week view
                 // if we're using an non-default hour range on week view
                 if (has_filter('tribe_events_week_get_hours')) {
                     $start_date .= ' ' . tribe_events_week_get_hours('first-hour');
                     $end_date .= ' ' . tribe_events_week_get_hours('last-hour');
                 }
                 $query->set('eventDate', $start_date);
                 $query->set('start_date', $start_date);
                 $query->set('end_date', $end_date);
                 $query->set('posts_per_page', -1);
                 // show ALL week posts
                 $query->set('hide_upcoming', false);
                 break;
             case 'photo':
                 $query->set('hide_upcoming', false);
                 break;
             case 'all':
                 new Tribe__Events__Pro__Recurrence__Event_Query($query);
                 break;
         }
         apply_filters('tribe_events_pro_pre_get_posts', $query);
     }
 }
 /**
  * Add custom query modification to the pre_get_posts hook as necessary for PRO.
  *
  * @param WP_Query $query The current query object.
  * @return WP_Query The modified query object.
  * @author Timothy Wood
  * @since 3.0
  */
 public function pre_get_posts($query)
 {
     $pro_query = false;
     $query->tribe_is_week = false;
     $query->tribe_is_day = false;
     $query->tribe_is_photo = false;
     $query->tribe_is_map = false;
     if (!empty($query->query_vars['eventDisplay'])) {
         $pro_query = true;
         switch ($query->query_vars['eventDisplay']) {
             case 'week':
                 $week = tribe_get_first_week_day($query->get('eventDate'));
                 $query->set('start_date', $week);
                 $query->set('eventDate', $week);
                 $query->set('end_date', tribe_get_last_week_day($week));
                 $query->set('orderby', 'event_date');
                 $query->set('order', 'ASC');
                 $query->set('posts_per_page', -1);
                 // show ALL week posts
                 $query->set('hide_upcoming', false);
                 $query->tribe_is_week = true;
                 break;
             case 'day':
                 // a little hack to prevent 404 from happening on day view
                 add_filter('tribe_events_templates_is_404', '__return_false');
                 $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : Date('Y-m-d');
                 $query->set('start_date', tribe_event_beginning_of_day($event_date));
                 $query->set('end_date', tribe_event_end_of_day($event_date));
                 $query->set('eventDate', $event_date);
                 $query->set('orderby', 'event_date');
                 $query->set('order', 'ASC');
                 $query->set('posts_per_page', -1);
                 // show ALL day posts
                 $query->set('hide_upcoming', false);
                 $query->tribe_is_day = true;
                 break;
             case 'photo':
                 $tribe_event_display = !empty($_REQUEST['tribe_event_display']) ? $_REQUEST['tribe_event_display'] : '';
                 $tribe_paged = !empty($_REQUEST['tribe_paged']) ? $_REQUEST['tribe_paged'] : 0;
                 $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : Date('Y-m-d');
                 $query->set('start_date', tribe_event_beginning_of_day($event_date));
                 $query->set('eventDate', $event_date);
                 $query->set('orderby', 'event_date');
                 $query->set('order', 'ASC');
                 $query->set('hide_upcoming', false);
                 $query->set('paged', $tribe_paged);
                 $query->tribe_is_photo = true;
                 if ($tribe_event_display === 'past') {
                     add_filter('tribe_events_pre_get_posts', array($this, 'set_past_events_query'), 20);
                 }
                 break;
             case 'map':
                 /*
                  * Query setup for the map view is located in
                  * TribeEventsGeoLoc->setup_geoloc_in_query()
                  */
                 $query->tribe_is_map = true;
         }
     }
     $query->tribe_is_event_pro_query = $pro_query;
     return $query->tribe_is_event_pro_query ? apply_filters('tribe_events_pro_pre_get_posts', $query) : $query;
 }
 /**
  * Add custom query modification to the pre_get_posts hook as necessary for PRO.
  *
  * @param WP_Query $query The current query object.
  * @return WP_Query The modified query object.
  * @author Timothy Wood
  * @since 3.0
  */
 public function pre_get_posts($query)
 {
     if (!empty($query->tribe_is_event_pro_query)) {
         switch ($query->query_vars['eventDisplay']) {
             case 'week':
                 $week = tribe_get_first_week_day($query->get('eventDate'));
                 $query->set('eventDate', $week);
                 $query->set('start_date', $week);
                 $query->set('end_date', tribe_get_last_week_day($week));
                 $query->set('posts_per_page', -1);
                 // show ALL week posts
                 $query->set('hide_upcoming', false);
                 break;
             case 'day':
                 $event_date = $query->get('eventDate') != '' ? $query->get('eventDate') : Date('Y-m-d', current_time('timestamp'));
                 $query->set('eventDate', $event_date);
                 $query->set('start_date', tribe_event_beginning_of_day($event_date));
                 $query->set('end_date', tribe_event_end_of_day($event_date));
                 $query->set('posts_per_page', -1);
                 // show ALL day posts
                 $query->set('hide_upcoming', false);
                 break;
             case 'photo':
                 $query->set('hide_upcoming', false);
                 break;
         }
         apply_filters('tribe_events_pro_pre_get_posts', $query);
     }
 }
 /**
  * Add custom query modification to the pre_get_posts hook as necessary for PRO.
  *
  * @param WP_Query $query The current query object.
  * @return WP_Query The modified query object.
  * @author Timothy Wood
  * @since 3.0
  */
 public function pre_get_posts($query)
 {
     if ($query->is_single() && $query->get('eventDate')) {
         $this->set_post_id_for_recurring_event_query($query);
     }
     if (!empty($query->tribe_is_event_pro_query)) {
         switch ($query->query_vars['eventDisplay']) {
             case 'week':
                 $week = tribe_get_first_week_day($query->get('eventDate'));
                 $query->set('eventDate', $week);
                 $query->set('start_date', $week);
                 $query->set('end_date', tribe_get_last_week_day($week));
                 $query->set('posts_per_page', -1);
                 // show ALL week posts
                 $query->set('hide_upcoming', false);
                 break;
             case 'photo':
                 $query->set('hide_upcoming', false);
                 break;
             case 'all':
                 $slug = $query->get('name');
                 if (empty($slug)) {
                     break;
                     // we shouldn't be here
                 }
                 unset($query->query_vars['name']);
                 unset($query->query_vars['tribe_events']);
                 $all_ids = TribeEventsRecurrenceMeta::get_events_by_slug($slug);
                 if (empty($all_ids)) {
                     $query->set('p', -1);
                 } else {
                     $query->set('post__in', $all_ids);
                     $query->set('post_status', 'publish');
                 }
                 break;
         }
         apply_filters('tribe_events_pro_pre_get_posts', $query);
     }
 }
Exemplo n.º 5
0
 /**
  * Add custom query modification to the pre_get_posts hook as necessary for PRO.
  *
  * @param WP_Query $query The current query object.
  *
  * @return WP_Query The modified query object.
  */
 public function pre_get_posts($query)
 {
     if ($query->is_single() && $query->get('eventDate')) {
         $this->set_post_id_for_recurring_event_query($query);
     }
     if (!empty($query->tribe_is_event_pro_query)) {
         switch ($query->query_vars['eventDisplay']) {
             case 'week':
                 $start_date = tribe_get_first_week_day($query->get('eventDate'));
                 $end_date = tribe_get_last_week_day($start_date);
                 // if the setting to hide weekends is true
                 if (tribe_get_option('week_view_hide_weekends', false) == true) {
                     $start_of_week = get_option('start_of_week');
                     // check if the week is set to start on a weekend day
                     // If so, start on the next weekday.
                     // 0 = Sunday, 6 = Saturday
                     if ($start_of_week == 0 || $start_of_week == 6) {
                         $start_date = date(Tribe__Events__Date_Utils::DBDATEFORMAT, strtotime($start_date . ' +1 Weekday'));
                     }
                     // If the week starts on saturday or friday
                     // sunday and/or saturday would be on the other end, so we need to end the previous weekday
                     // 5 = Friday, 6 = Saturday
                     if ($start_of_week == 5 || $start_of_week == 6) {
                         $end_date = date(Tribe__Events__Date_Utils::DBDATEFORMAT, strtotime($end_date . ' -1 Weekday'));
                     }
                 }
                 // if the setting to hide weekends is on
                 // need to filter the query
                 // need to only show 5 days on the week view
                 // if we're using an non-default hour range on week view
                 if (has_filter('tribe_events_week_get_hours')) {
                     $start_date .= ' ' . tribe_events_week_get_hours('first-hour');
                     $end_date .= ' ' . tribe_events_week_get_hours('last-hour');
                 }
                 $query->set('eventDate', $start_date);
                 $query->set('start_date', $start_date);
                 $query->set('end_date', $end_date);
                 $query->set('posts_per_page', -1);
                 // show ALL week posts
                 $query->set('hide_upcoming', false);
                 break;
             case 'photo':
                 $query->set('hide_upcoming', false);
                 break;
             case 'all':
                 $slug = $query->get('name');
                 if (empty($slug)) {
                     break;
                     // we shouldn't be here
                 }
                 unset($query->query_vars['name']);
                 unset($query->query_vars['tribe_events']);
                 $posts = get_posts(array('name' => $slug, 'post_type' => Tribe__Events__Main::POSTTYPE, 'post_status' => 'publish', 'numberposts' => 1));
                 $post = reset($posts);
                 if (empty($post)) {
                     $query->set('p', -1);
                 } else {
                     $query->set('post_parent', $post->ID);
                     $query->set('post_status', 'publish');
                     $query->set('posts_per_page', tribe_get_option('postsPerPage', 10));
                     $query->is_singular = false;
                 }
                 break;
         }
         apply_filters('tribe_events_pro_pre_get_posts', $query);
     }
 }
Exemplo n.º 6
0
 /**
  * This Week Widget - Ajax Change Week
  *
  *
  */
 public function ajax_change_this_week()
 {
     $response = array('success' => false, 'html' => '', 'view' => 'this-week');
     if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'this-week-ajax')) {
         wp_send_json_error();
     }
     if (isset($_POST['start_date']) && isset($_POST['count'])) {
         //Disable Tooltips
         $ecp = Tribe__Events__Pro__Main::instance();
         $tooltip_status = $ecp->recurring_info_tooltip_status();
         $ecp->disable_recurring_info_tooltip();
         $tax_query = isset($_POST['tax_query']) ? $_POST['tax_query'] : null;
         $_POST['start_date'] = trim($_POST['start_date']);
         if (false == strtotime($_POST['start_date'])) {
             wp_send_json_error();
         }
         //Array of Variables to use for Data Attributes and Query
         $this_week_query_vars['start_date'] = $_POST['start_date'];
         $this_week_query_vars['end_date'] = tribe_get_last_week_day($_POST['start_date']);
         $this_week_query_vars['count'] = $_POST['count'];
         $this_week_query_vars['layout'] = $_POST['layout'];
         $this_week_query_vars['tax_query'] = $tax_query;
         $this_week_query_vars['hide_weekends'] = $_POST['hide_weekends'];
         //Setup Variables for Template
         $this_week_template_vars = self::this_week_template_vars($this_week_query_vars);
         //Setup Attributes for Ajax
         $this_week_data_attrs = self::this_week_data_attr($this_week_query_vars);
         //Setups This Week Object for Each Day
         $week_days = self::this_week_query($this_week_query_vars);
         ob_start();
         include Tribe__Events__Templates::getTemplateHierarchy('pro/widgets/this-week-widget.php');
         $response['html'] = ob_get_clean();
         $response['success'] = true;
         // Re-enable recurring event info
         if ($tooltip_status) {
             $ecp->enable_recurring_info_tooltip();
         }
     }
     apply_filters('tribe_events_ajax_response', $response);
     wp_send_json($response);
 }