-
AuthorSearch Results
-
November 2, 2020 at 12:18 pm #264919
In reply to: Category order in dropdown menu
TrevorParticipantAs this is a Taxonomy/Category/Tag field, then you will need to code a solution. You can use this filter in your child theme’s functions.php file:
https://searchandfilter.com/documentation/action-filter-reference/#filter-input-object
To re-order the terms in the field.
I am not sure if it will help, but if there are many snippets already in the forum, this forum search should find them:
https://support.searchandfilter.com/forums/search/sf_input_object_pre+function+order/
October 15, 2020 at 11:38 am #262980In reply to: Order of Search Options dropdown
TrevorParticipantIf it is a Post Meta field, then you can set the source to Manual and drag and drop them. If it is a Taxonomy, then you will need to code a solution. You can use this filter in your child theme’s functions.php file:
https://searchandfilter.com/documentation/action-filter-reference/#filter-input-object
To re-order the terms in the field.
I am not sure if it will help, but if there are many snippets already in the forum, this forum search should find them:
https://support.searchandfilter.com/forums/search/sf_input_object_pre+function+order/
October 9, 2020 at 2:22 am #262498
AnonymousInactiveWhile this thread is a few months old, here is the code for my solution used for a current project. The code below gets the terms for the taxonomy called ‘commodity_codes’ and then updates the Search and Filter field ‘_sft_commodity_codes’ in my search forms by leaving the value intact for the query and simply updating the label to be a concatenation of the term name and the first 21 characters of the description with camel casing.
Thanks to the gist here: https://gist.github.com/rmorse/7b59b45a14b1ca179868
function filter_function_name($input_object, $sfid) { if($input_object['name']=='_sft_commodity_codes') { //if we want to filter the options generated, we need to make sure the options variable actually exists before proceeding (its only available to certain field types) if(!isset($input_object['options'])) { return $input_object; } //get the terms for the taxonomy $terms = get_terms('commodity_codes'); //now we know there are options we can loop through each one, and change what we need foreach($input_object['options'] as $option) { foreach($terms as $term) { if($term->name==$option->value) {//we want to change the label for the option "black" - we can feed back in the count number to the label for this field type $option->label = $term->name . ' : ' . ucwords(substr($term->description,0,21)); } } } } return $input_object; } add_filter('sf_input_object_pre', 'filter_function_name', 10, 2);
Hope this helps others.
— Tom @NPCrowd : https://npcrowd.com
October 6, 2020 at 2:02 pm #262072In reply to: Multipel Tags fields
TrevorParticipantI think it should be this:
//Search & filters hook function update_range_field_mileage($input_object, $sfid) { //make sure we affect the '_sfm_standby_power_esp_kvs_nr' field only if($input_object['name']=='_sfm_standby_power_esp_kvs_nr' && $sfid==1893) { //udpate this field before rendering //all the options are stored in $input_object['options'] as an array $new_options = array(); //create a new "default" option $new_option = new StdClass(); $new_option->value = ""; $new_option->label = "kVA"; array_push($new_options, $new_option); //create a new range option we want to add $new_option = new StdClass(); $new_option->value = "10+50"; //this is the value that goes in the URL, which affects the query $new_option->label = "10 – 50"; //the label can be anything array_push($new_options, $new_option);//create a new range option we want to add $new_option = new StdClass(); $new_option->value = "51+200"; //this is the value that goes in the URL, which affects the query $new_option->label = "51 – 200"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "201+400"; //this is the value that goes in the URL, which affects the query $new_option->label = "201 – 400"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "401+700"; //this is the value that goes in the URL, which affects the query $new_option->label = "401 – 700"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "701+1500"; //this is the value that goes in the URL, which affects the query $new_option->label = "701 – 1500"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "1501+2500"; //this is the value that goes in the URL, which affects the query $new_option->label = "1501 – 2500"; //the label can be anything array_push($new_options, $new_option); //now replace the options with our own custom options: $input_object['options'] = $new_options; } return $input_object; } add_filter('sf_input_object_pre', 'update_range_field_mileage', 10, 2);
October 6, 2020 at 12:59 pm #262056In reply to: Multipel Tags fields
AnonymousInactiveHi Trevor
Thanks.
Can you just check if it is done correctly with form id if($sfid==1893)
Thanks
//Search & filters hook function update_range_field_mileage($input_object, $sfid) { //make sure we affect the '_sfm_standby_power_esp_kvs_nr' field only if($input_object['name']=='_sfm_standby_power_esp_kvs_nr') if($sfid==1893) { //udpate this field before rendering //all the options are stored in $input_object['options'] as an array $new_options = array(); //create a new "default" option $new_option = new StdClass(); $new_option->value = ""; $new_option->label = "kVA"; array_push($new_options, $new_option); //create a new range option we want to add $new_option = new StdClass(); $new_option->value = "10+50"; //this is the value that goes in the URL, which affects the query $new_option->label = "10 – 50"; //the label can be anything array_push($new_options, $new_option);//create a new range option we want to add $new_option = new StdClass(); $new_option->value = "51+200"; //this is the value that goes in the URL, which affects the query $new_option->label = "51 – 200"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "201+400"; //this is the value that goes in the URL, which affects the query $new_option->label = "201 – 400"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "401+700"; //this is the value that goes in the URL, which affects the query $new_option->label = "401 – 700"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "701+1500"; //this is the value that goes in the URL, which affects the query $new_option->label = "701 – 1500"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "1501+2500"; //this is the value that goes in the URL, which affects the query $new_option->label = "1501 – 2500"; //the label can be anything array_push($new_options, $new_option); //now replace the options with our own custom options: $input_object['options'] = $new_options; } return $input_object; } add_filter('sf_input_object_pre', 'update_range_field_mileage', 10, 2);
October 6, 2020 at 11:34 am #262027In reply to: Multipel Tags fields
TrevorParticipantHi
Great to speak with you Sasha. The link for the main function was this:
https://support.searchandfilter.com/forums/topic/range-overlap/#post-231607
Testing the form id would make it look like this:
function update_range_field_mileage($input_object, $sfid) { //make sure we affect the '_sfm_mileage' field only, and only in form ID 12345 if( $sfid == 12345 && $input_object['name']=='_sfm_mileage' ) { //udpate this field before rendering //all the options are stored in <code>$input_object['options']</code> as an array $new_options = array(); //create a new "default" option $new_option = new StdClass(); $new_option->value = ""; $new_option->label = "KM Stand"; array_push($new_options, $new_option); //create a new range option we want to add $new_option = new StdClass(); $new_option->value = "0+49999"; //this is the value that goes in the URL, which affects the query $new_option->label = "0 - 49999"; //the label can be anything array_push($new_options, $new_option);//create a new range option we want to add $new_option = new StdClass(); $new_option->value = "50000+99999"; //this is the value that goes in the URL, which affects the query $new_option->label = "50000 - 99999"; //the label can be anything array_push($new_options, $new_option); $new_option = new StdClass(); $new_option->value = "100000+150000"; //this is the value that goes in the URL, which affects the query $new_option->label = "100000 - 150000"; //the label can be anything array_push($new_options, $new_option); //now replace the options with our own custom options: $input_object['options'] = $new_options; } return $input_object; } add_filter('sf_input_object_pre', 'update_range_field_mileage', 10, 2);
Do let me know how you get on?
September 28, 2020 at 7:39 pm #261160In reply to: Reorder based on selection
TrevorParticipantThere ARE some shared snippets on the forum. Try this search:
https://support.searchandfilter.com/forums/search/sf_input_object_pre+function+order/
If you produce something, but it doesn’t quite work, by all means share the code for us to take a look at. Custom coding doesn’t really fall within the scope of our support, but we will help where we can.
September 25, 2020 at 10:57 am #260793In reply to: Pods Relationship Fields
RossKeymasterHi Sunny
You can replace the ID’s, by post title, by adding this to
functions.php
:function filter_input_object($input_object, $sfid) { if(($input_object['name'] == '_sfm_podsrelationship')) { foreach($input_object['options'] as $option) { $option->label = get_the_title($option->value); } return $input_object; } else { return $input_object; } } add_filter('sf_input_object_pre', 'filter_input_object', 10, 2);
Make sure to change the name of the field to match yours:
_sfm_podsrelationship
To find your field name, just check the URL when you do a search:
https://searchandfilter.com/documentation/accessing-search-data/?sfref=dc#how-to-get-the-field-nameLet me know how you get on.
Thanks
September 23, 2020 at 8:41 am #260434In reply to: Default value select
AnonymousInactivei`m using unset to delete first two option values but i need it to be default, how to do this?? thanks
function filter_function_name($input_object, $sfid)
{
if($input_object[‘name’]==’_sft_tax_news’)
{
/*foreach($input_object[‘options’] as $option)
{
if($option->value==”maironio-lietuviu-literaturos-muziejus”)
{
$option->label = “AAA”;
$option->attributes[‘class’] = “sf-option-active”;
$option->attributes[‘selected’] = “selected”;
}
}*/
unset($input_object[‘options’][0]);
unset($input_object[‘options’][1]);
return $input_object;
//udpate this field before rendering
}
else{
echo “NOOO!”;
return $input_object;
}
}
add_filter(‘sf_input_object_pre’, ‘filter_function_name’, 10, 2);filter_function_name(array(‘name’ => ‘_sft_tax_news’),17402);
September 22, 2020 at 2:11 pm #260342In reply to: Display custom query by default
TrevorParticipantYou can use this filter in your child theme’s functions.php file:
https://searchandfilter.com/documentation/action-filter-reference/#filter-input-object
To re-order the terms in that field.
I am not sure if it will help, but if there are any snippets already in the forum, this forum search should find them:
https://support.searchandfilter.com/forums/search/sf_input_object_pre+function+order/
-
AuthorSearch Results