Forums Forums Search Search Results for 'sf_current_query'

Viewing 10 results - 101 through 110 (of 318 total)
  • Author
    Search Results
  • #219094

    Trevor
    Participant

    That plugin, and others like it, will impact sorting in our plugin as it acts later in the WordPress page creation process. Post Types Order does have a hook you can use though, to stop it working under conditions that you set. It is discussed here:

    https://wordpress.org/support/topic/to-avoid-plugin-conflict-how-to-disable-post-type-order-for-search-pages/

    Maybe like this (in your child theme functions.php file):

    add_filter('pto/posts_orderby/ignore', 'pto_ignore', 10, 3);
    function pto_ignore( $ignore, $orderBy, $query ) {
      global $searchandfilter;
    $sf_current_query = $searchandfilter->get(12345)->current_query();
    if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()=="")) {
    } else {
      $ignore = TRUE;
    }
    return $ignore; 
    }

    Where 12345 is changed to the ID of your search?

    I am not sure if this is much the same, but simpler/shorter:

    add_filter('pto/posts_orderby/ignore', 'pto_ignore', 10, 3);
    function pto_ignore( $ignore, $orderBy, $query ) {
      global $searchandfilter;
    $sf_current_query = $searchandfilter->get(12345)->current_query();
    if (!((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()==""))) $ignore = TRUE;
    return $ignore; 
    }
    #216800

    Anonymous
    Inactive

    Thank you for your support.

    I would like put add more information about current situation.
    1.Form 78 and Form 50 have different search form UI.

    Form 50 -> line
    Form 78 -> price, some preference etc..

    Could you please provide some solution ?

    2.what is the Active Query Object for ? where do I need to put this code ?

    <?php
    //grab the active query from our search form
    //replace 1526 with the ID of your search form
    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(1526)->current_query();
    ?>

    https://searchandfilter.com/documentation/accessing-search-data/

    Regards,

    #215861

    Anonymous
    Inactive

    I get the array on the result page using this code:
    <?php
    //Get the search term
    //replace 1526 with the ID of your search form
    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(154)->current_query();
    echo $sf_current_query->get_fields_html(
    array(“_sft_manufacturer”, “_sft_year”,”_sft_engine_type”,”_sft_engine_model”)
    );
    ?>
    it shows:
    manufacturers: crusader
    years: All years
    engine type: inboard
    Engine Model: All Engine Model

    So how to let it show on woocommerce new order email ?

    Thanks.


    Trevor
    Participant

    The ‘As an Archive’ method might cause that to happen

    add_action('pre_get_posts', 'myprefix_query_offset', 1 );
    function myprefix_query_offset(&$query) {
      if (is_front_page() && $query->is_main_query()){
        global $searchandfilter;
        $sf_current_query = $searchandfilter->get(12345)->current_query();
        if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()=="")) {
          return;
        } else {
    // RUN CODE ONLY ON FRONT PAGE AND MAIN QUERY
        }
      }
    }

    That might work. Change 12345 for the ID of your form.


    Trevor
    Participant

    To fetch the search terms, the https://searchandfilter.com/documentation/accessing-search-data/ guide is basic but you can extend the idea to grab lots of other data. If you have other filters, then it becomes a little more complex, but I can give you links. This thread might help you:

    https://support.searchandfilter.com/forums/topic/accessing-field-slug-on-search-results/

    … and this search will give similar threads I think:

    https://support.searchandfilter.com/forums/search/sf_current_query+get_array

    Note, if you are using Ajax refreshing of the results, any PHP needs to be inside the Ajax Container, or it will not update.

    You could use this to display the filter array:

    <?php
    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(1391)->current_query()->get_array();
    echo '<pre>',print_r($sf_current_query,true),'</pre>';
    ?>

    Where the ID needs to match that of your form.

    #215288

    Trevor
    Participant

    I am not sure if this is what you want. To show the filters, as I said, this requires custom coding when using the current version of Search & Filter Pro. You can access the filter terms though, but would need further PHP work to display them. To fetch the search terms, the

    https://searchandfilter.com/documentation/accessing-search-data/

    guide is basic but you can extend the idea to fetch other filter terms/data. If you have other filters, then it becomes a little more complex, but I can give you links. This thread might help you:

    https://support.searchandfilter.com/forums/topic/accessing-field-slug-on-search-results/

    … and this search will give similar threads I think:

    https://support.searchandfilter.com/forums/search/sf_current_query+get_array+field+%5Bvalue%5D/

    Note, if you are using Ajax refreshing of the results, any PHP needs to be inside the Ajax Container, or it will not update.

    #213402

    Anonymous
    Inactive

    i use the shortcode to display my result, and in the shortcode I use the next code

    $sf_current_query = $searchandfilter->get( 1391 )->current_query();
    the get( 1391 ) is fixed ID….

    i need something like
    $sf_current_query = $searchandfilter->get( $sfid )->current_query();

    #213328

    Trevor
    Participant

    You can find more details from the filter query array.

    You may need to temporarily output the array to see how to access the term that you want.

    If you add this code to the page, it will output the entire array:

    <?php
    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(1391)->current_query()->get_array();
    echo '<pre>',print_r($sf_current_query,true),'</pre>';
    ?>

    Trevor
    Participant

    If I understand you correctly, you need to output the currently searched for term(s) on the results page. To an extent, this is limited by how the page is constructed, but as long as you have a PHP template and know how to edit/code that, you should be able to achieve what you want.

    To show the filters, as I said, this requires custom coding when using the current version of Search & Filter Pro. You can access the filter terms though, but would need further PHP work to display them. To fetch the search terms, the https://searchandfilter.com/documentation/accessing-search-data/ guide is basic but you can extend the idea to grab lots of other data. If you have other filters, then it becomes a little more complex, but I can give you links. This thread might help you:

    https://support.searchandfilter.com/forums/topic/accessing-field-slug-on-search-results/

    … and this search will give similar threads I think:

    https://support.searchandfilter.com/forums/search/sf_current_query+get_array+field+%5Bvalue%5D/

    Note, if you are using Ajax refreshing of the results, any PHP needs to be inside the Ajax Container, or it will not update.


    Anonymous
    Inactive

    Hi.
    OK so originally i had the Search & Filter (none pro ) version installed, so i have just installed the Pro version and started to set up the first form, using all the options etc.

    On the General Tab I set it to my ‘Lab Test’ custom posts.

    Display Results i set it to ‘Post Type Archive’, but i can change that back to ‘Using A Shortcode’ if that is easier? And then on my Archive page add the code you suggested?

    My current code is simply this (when i used the none pro version)

    <div class=”search”><?php echo do_shortcode( ‘[searchandfilter fields=”search” search_placeholder=”Enter a Batch No” submit_label=”Search” post_types=”,labtests”]’ ); ?></div>

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div><?php the_title(); ?></div>
    <?php endwhile; ?>
    <?php else : ?>
    <?php endif; ?>

    So should it be set to Use Shortcode, then change the code like this:

    <?php

    global $searchandfilter;
    $sf_current_query = $searchandfilter->get(284)->current_query();
    if ((!$sf_current_query->is_filtered())&&($sf_current_query->get_search_term()==””)) {
    echo ‘<div>Nothing to see here folks!</div>’;
    } else {
    if (have_posts()) : while (have_posts()) : the_post();
    }

    ?>

Viewing 10 results - 101 through 110 (of 318 total)