ore_provider_settings( $this->get_id(), $provider_settings, $query_id ); $args['suppress_filters'] = false; $args['jet_smart_filters'] = jet_smart_filters()->query->encode_provider_data( $this->get_id(), $query_id ); return $args; } /** * Get provider name */ public function get_name() { return __( 'JetEngine Calendar', 'jet-smart-filters' ); } /** * Get provider ID */ public function get_id() { return 'jet-engine-calendar'; } /** * Get filtered provider content */ public function ajax_get_content() { if ( ! function_exists( 'jet_engine' ) ) { return; } add_filter( 'jet-engine/listing/grid/posts-query-args', array( $this, 'add_query_args' ), 10, 2 ); add_filter( 'jet-engine/listing/grid/custom-settings', array( $this, 'add_settings' ), 10, 2 ); $attrs = $this->sanitize_settings( jet_smart_filters()->query->get_query_settings() ); $render = jet_engine()->listings->get_render_instance( 'listing-calendar', $attrs ); $render->render(); } /** * Get provider wrapper selector */ public function get_wrapper_selector() { return '.jet-listing-calendar'; } /** * Action for wrapper selector - 'insert' into it or 'replace' */ public function get_wrapper_action() { return 'replace'; } /** * If added unique ID this parameter will determine - search selector inside this ID, or is the same element */ public function in_depth() { return true; } /** * Add custom settings for AJAX request */ public function add_settings( $settings, $widget ) { if ( 'jet-listing-calendar' !== $widget->get_name() ) { return $settings; } return jet_smart_filters()->query->get_query_settings(); } /** * Pass args from reuest to provider */ public function apply_filters_in_request() { $args = jet_smart_filters()->query->get_query_args(); if ( ! $args ) { return; } add_filter( 'jet-engine/listing/grid/posts-query-args', array( $this, 'add_query_args' ), 10, 2 ); } /** * Add custom query arguments */ public function add_query_args( $args, $widget ) { if ( 'jet-listing-calendar' !== $widget->get_name() ) { return $args; } if ( ! jet_smart_filters()->query->is_ajax_filter() && ! $this->is_month_request() ) { $settings = $widget->get_settings(); if ( empty( $settings['_element_id'] ) ) { $query_id = 'default'; } else { $query_id = $settings['_element_id']; } $request_query_id = jet_smart_filters()->query->get_current_provider( 'query_id' ); if ( $query_id !== $request_query_id ) { return $args; } } if ( $this->is_month_request() ) { $request = jet_smart_filters()->data->get_request(); jet_smart_filters()->query->get_query_from_request( isset( $request['query'] ) ? $request : array() ); } return array_merge( $args, jet_smart_filters()->query->get_query_args() ); } } }