/** * 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); } }
/** * 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); } }
/** * 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); }