Forums Forums Search & Filter Pro Split: Does not work with Elementor Pro and Ele Custom Skin loops

Viewing 10 posts - 1 through 10 (of 47 total)
  • Anonymous
    #236557

    Hello Trevor, and Paul.

    I can confirm that the plugin works well with Elementor Pro and Ele Custom Skin loops.

    The only issue I’ve seen up until now is that pagination is displayed incorrectly the first time the page loads, then it is fixed when you click on a page number.

    For example:
    In a query that should’ve shown 8 pages of posts, the pagination shows links for 14 pages.
    If you click on any page number between 1 and 8, the correct page loads, with the right content. Also, the pagination is fixed and will now show only numbers 1 through 8.
    But, if you click on any invalid page number (9-14), the results come up empty.

    My question is: why is that first page showing an incorrect number of results?

    If you wish to see it in action, you may visit:
    https://worldyachtgroup.com/yachts-for-sale/

    Thanks for everything, Trevor!
    Armando J.

    Ross Moderator
    #236629

    Hi Armando

    I’ve split this into a new topic.

    The issue you have is that when you do a default search (without changing anything in the search form), your range sliders are submitted at the min + max values.

    I’m guessing some of your posts, don’t have values for some of those sliders, so once submitted, they dissapear from the results.

    I hope that makes sense.

    Thanks

    Anonymous
    #236638

    Thank you for your quick response, Ross!
    That does make sense. Do you know of a way where I could force the initial page load to use the valid values from the search form?

    In other words, I prefer it to only show results that match whatever can be searched.

    In the example I gave earlier, I would prefer it if the pagination only showed pages 1 through 8.

    Thanks again!

    Anonymous
    #236725

    I think I’ve got another way to phrase my question:

    I’m running a regular WP Query to get those initial posts to show up. I could probably add the proper parameters to the query so that it matches whatever Search & Filter Pro is querying when doing a “default search”.

    This is how it looks right now in the URL:
    https://worldyachtgroup.com/yachts-for-sale/?_sfm_offered_at_eur=0+129000000&_sfm_length_meters=20+90&_sfm_year_built=1994+2021&_sfm_cabins=0+18

    Do you have a reference on how the plugin builds those queries? Or is there a hook/filter I could tap into via PHP?

    Thanks again! The plugin is fantastic!

    Trevor
    #236823

    Hi

    Ross has asked me to take this topic over.

    The problem with trying that approach (and I do not think it can be done), is that some boats will never be shown. If they fail any of those 3 filters, they disappear from the results. I am not sure this is what you want to do.

    Let us assume that a boat does not have an ‘Offered At’ price, and the field is empty, like Amadea, then it will not appear at all. The same applies for the other two fields, length and year built.

    This is a problem only associated with using range fields. You might be better to have secondary related search fields where choices are offered that encompass the precise values entered (where applicable):

    So, a Secondary ‘Offered at’ field might look like the following options (in checkbox type filter):

    Request
    0-10m
    10m-20m
    20m +

    That way you avoid this problem entirely.

    Anonymous
    #236836

    Thank you, Trevor!
    That is interesting, it does change the the design quite a bit, but I’ll consider it.

    When you say “secondary related search field”, what do you mean? Replacing the range filters with checkbox filters?

    Thanks again!

    Trevor
    #236883

    Let us say you have the ‘Offered At’ field, and so you make a second field, let us call this ‘Offered At Choices’.

    So, when entering the data, the Offered At field has the real number, but you select a range choice for the Offered At Choices field.

    Now, it is possible to use the WordPress save_post() function to create your own logic/code/PHP (placed in the child theme functions.php file) so that, when a boat is saved, the code looks at the saved Offered At number and uses that code to create the correct string value to save in the Offered At Choice field, including creating a default value (like ‘Request’ where no value was entered).

    This isn’t simple, but it can be done. There are snippets of code that do this sort of thing on the StackExchange web site.

    Trevor
    #236891

    I will refer this to the plugin developer, Ross, to see if there is a way to use this filter:

    https://searchandfilter.com/documentation/action-filter-reference/#edit-query-arguments

    (or another he might know of)

    To examine the values for a range field and compare those to the default value, and if they are at the default value, remove that part of the query. It might require that Auto Detect min and max are not set (that min and max are set manually) so that they can be known in the code.

    Anonymous
    #237092

    Thank you, Trevor!
    I’ve discussed it with the team and they prefer to keep the current “range slider” type feel for the filter bar. So that brings us to your second suggestion, and I’m looking forward to seeing what Ross thinks of this.

    If we could somehow alter the query in a way that would show all vessels when a particular range field is at the default point, that would be great.

    What are your thoughts, Ross?

    Thanks again!

    Ross Moderator
    #237258

    Hi Armando

    So I’ve been thinking a bit about this, and obvously at some stage in the future we want to improve the way all this works, from within the plugin.

    Let me just say, you can’t alter the query in the way you want using sf_edit_query_args – this is because we actually perform our search outside of the WP_Query, and insert the results… anyway, for now I see you have only two options going forward:

    1) Assign a default value (lets say 0) to all posts that don’t have a value, and make sure the range slider starts at 0. This is a lot easier to do than it may seem. You run a new WP_Query to find all posts that don’t have this value assigned (NOT EXISTS) – for example you can see here:
    https://wordpress.stackexchange.com/questions/80303/query-all-posts-where-a-meta-key-does-not-exist
    Then when you look through each results, all you do is use add_post_meta() to set it to 0https://developer.wordpress.org/reference/functions/update_post_meta/

    2) As you mentioned at the beginning, you wanted the results on page load, to match those after a search has been performed once the default range slider values are added. You can in fact do this, by going to the post meta tab in your search form, and adding two conditions in, to ensure all posts are above and below a specific values.

    I hope that explains things a bit and gives you some viable options to work with!

    Let me know if you have any follow up questions.

    Thanks

Viewing 10 posts - 1 through 10 (of 47 total)