0

function dtwd_special_search_shortcode(){
   ob_start(); ?>
 <div id="special-search-shortcode">
 <!-- <form method="get" id="searchform" class="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>" role="search"> -->
   <fieldset>
   <!-- <input class="special-search-input-box" type="text" name="s" value="" placeholder="enter search keywords&hellip;" maxlength="50" required="required" /> -->
   <input type="hidden" name="cat_sname" value="alco-market-insights">
   <input type="hidden" name="s">
   <div class="col-4">
   <label>Select Month</label>
   <select name="month_val" class="special-search-select-box" required id="month_val">
    <!-- <option value="1">January</option>
    <option value="2">Febuary</option>
    <option value="3">March</option> -->
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
   </select>
   </div>
   <div class="col-8">
   <label>Select Year</label>
   <select name="year_val" required id="year_val">
      <option value=""><?php echo esc_attr( __( 'Select Year' ) ); ?></option> 
      <option value="2020">2020</option>
   </select>
   <button type="submit" id="get_results">Search</button>
   </div>
   </fieldset>
   <!-- </form> -->
 </div>
 <div class="data_container">
  <p class="loading">Loading Alco Market Insights</p>
  <div id="datafetch"></div>
 </div>
 <style>
 .loading{
  display: none;
 }
 .loading:after {
  content: ' .';
  animation: dots 1s steps(5, end) infinite;
 }
 @keyframes dots {
 0%, 20% {
  color: rgba(0,0,0,0);
  text-shadow:.25em 0 0 rgba(0,0,0,0),.5em 0 0 rgba(0,0,0,0);
 }
 40% {
  color: #000;
  text-shadow:
  .25em 0 0 rgba(0,0,0,0),
  .5em 0 0 rgba(0,0,0,0);
 }
 60% {
  text-shadow:
  .25em 0 0 #000,
  .5em 0 0 rgba(0,0,0,0);
 }
 80%, 100% {
  text-shadow:
  .25em 0 0 #000,
  .5em 0 0 #000;
 }
 }
 .data_container {
     margin-top: 25px;
 }
 p.meta_info {
     font-size: 14px;
     line-height: 16px;
 }
 .data_container .loop_items {
     margin-bottom: 20px;
     -webkit-box-shadow: 0 1px 4px rgba(56, 98, 64, 0.3), 0 0 40px rgba(56, 98, 64, 0.1) inset;
     -moz-box-shadow: 0 1px 4px rgba(56, 98, 64, 0.3), 0 0 40px rgba(56, 98, 64, 0.1) inset;
     box-shadow: 0 1px 4px rgba(56, 98, 64, 0.3), 0 0 40px rgba(56, 98, 64, 0.1) inset;
     padding: 15px;
 }
 .read_more {
     background: #386240;
     color: #fff;
     padding: 10px 15px;
     clear: both;
     font-size: 14px;
     display: block;
     max-width: 110px;
     text-align: center;
     line-height: 16px;
     margin-top: 10px;
 }
 .read_more:hover, a.read_more:focus {
     background: #222222;
 }
 </style>
<?php $specialsearch = ob_get_clean();
return $specialsearch;
}
add_shortcode('special-search', 'dtwd_special_search_shortcode');
 add_action( 'wp_footer', 'ajax_fetch_posts' );
function ajax_fetch_posts() {
?>
<script>
jQuery('#get_results').on('click', function() {
 jQuery('.loading').show();
 jQuery('#datafetch').hide();
    jQuery.ajax({
        url: '<?php echo admin_url('admin-ajax.php'); ?>',
        type: 'post',
        data: { 
         action: 'data_fetch_alco', 
         month_s: jQuery('#month_val option:selected').val(),
         year_s: jQuery('#year_val option:selected').val(), 
        },
        success: function(data) {
            jQuery('#datafetch').html( data );
            jQuery('.loading').hide();
   jQuery('#datafetch').show();
            console.log(data);
        },
        error: function() {
            console.log("Error");
   }
    });
});
</script>
<?php
}
 add_action('wp_ajax_data_fetch_alco' , 'data_fetch_alco');
add_action('wp_ajax_nopriv_data_fetch_alco','data_fetch_alco');
function data_fetch_alco(){
    $the_query = new WP_Query( 
     array( 'posts_per_page' => -1, 
      //'s' => esc_attr( $_POST['keyword'] ), 
      'post_type' => 'post' ,
      'category_name'=> 'alco-market-insights',
      'year'=>$_POST['year_s'],
      'monthnum'=>$_POST['month_s']
     ) );
    if( $the_query->have_posts() ) :
        while( $the_query->have_posts() ): $the_query->the_post(); ?>
     <div class="loop_items">
            <h2><a href="<?php echo esc_url( post_permalink() ); ?>"><?php the_title();?></a></h2>
            <p class="meta_info"><time datetime="<?php echo get_the_date('c'); ?>" itemprop="datePublished"><?php echo get_the_date(); ?></time> | <?php $categories = get_the_category();
if ( ! empty( $categories ) ) {
    echo '<a href="' . esc_url( get_category_link( $categories[0]->term_id ) ) . '">' . esc_html( $categories[0]->name ) . '</a>';
}?></p>
<a href="<?php echo esc_url( post_permalink() ); ?>" class="read_more">Read More</a>
        </div>
        <?php endwhile; else :
        echo '<h2>No results found</h2>';
        wp_reset_postdata();  
    endif;
          die();
}
function be_search_query( $query ) {
 if( $query->is_main_query() && ! is_admin() && $query->is_search() ) {
  if( !empty( $_GET['cat_sname'] ) ){
   $query->set( 'category_name', esc_attr( $_GET['cat_sname'] ) );
   $query->set( 'date_query', array(
                array(
                    'after' => $_GET['month_val']. '1,' .$_GET['year_val'], 
                )
            ) ); 
        }
 }
}
add_action( 'pre_get_posts', 'be_search_query' );

Jagdish Sarma Asked question October 14, 2020
Add a Comment