-
AuthorSearch Results
-
August 16, 2019 at 7:12 am #219094
In reply to: Sort order by custom field not working properly
TrevorParticipantThat 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:
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; }
July 20, 2019 at 2:35 am #216800In reply to: How to use second search on next page?
AnonymousInactiveThank 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
//replace1526
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,
July 9, 2019 at 7:59 pm #215861Topic: How to add array on woocommerce email?
in forum Search & Filter Pro
AnonymousInactiveI get the array on the result page using this code:
<?php
//Get the search term
//replace1526
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 ModelSo how to let it show on woocommerce new order email ?
Thanks.
July 9, 2019 at 11:16 am #215764
TrevorParticipantThe ‘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.
July 5, 2019 at 4:04 pm #215649
TrevorParticipantTo 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.
July 1, 2019 at 8:43 am #215288In reply to: get selected value and show on page?
TrevorParticipantI 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.
June 6, 2019 at 1:52 am #213402In reply to: i want to get the current sfid
AnonymousInactivei use the shortcode to display my result, and in the shortcode I use the next code
$sf_current_query = $searchandfilter->get( 1391 )->current_query();
theget( 1391 )
is fixed ID….i need something like
$sf_current_query = $searchandfilter->get( $sfid )->current_query();
June 5, 2019 at 9:27 am #213328In reply to: i want to get the current active filter sort label
TrevorParticipantYou 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>'; ?>
May 29, 2019 at 10:12 am #212706
TrevorParticipantIf 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.
May 22, 2019 at 10:48 am #211977
AnonymousInactiveHi.
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();
}?>
-
AuthorSearch Results
-
Search Results
-
I get the array on the result page using this code:
<?php
//Get the search term
//replace1526
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 ModelSo how to let it show on woocommerce new order email ?
Thanks.