Ajax Search pro – incorrect woocommerce product links in search result

Home Forums Product Support Forums Ajax Search Pro for WordPress Support Ajax Search pro – incorrect woocommerce product links in search result

This topic contains 2 replies, has 2 voices, and was last updated by miag miag 7 years, 6 months ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #3728
    miag
    miag
    Participant

    Uses Ajax Search pro on a WP multisite, http://www.humlebyns.se
    Works great except for http://www.humlebyns.se/hundbutik where we have a Wocommerce shop.
    It looks like a permalink problem, a search for schampo at http://www.humlebyns.se/test/ result in a list with schampo in the shop, but associated links are incorrect, i.e http://www.humlebyns.se/hundbutik/espree-luxury-tar-sulfa-schampo-355-ml/, when it should be http://www.humlebyns.se/hundbutik/produkt/espree-luxury-tar-sulfa-schampo-355-ml.

    The shop uses SSL, no problems with that.
    Ajax Search pro – No Errors found
    Ajax Search pro is activated for network

    Hope you can give me a hint, otherwise I will provide login data.
    Michael

    #3731
    Ernest Marcinko
    Ernest Marcinko
    Keymaster

    Hi!

    I did a bit of a research, and this might be a wordpress related bug. The search uses the general get_permalink() function to return the correct url, but for some reason it fails. Before touching anything you should try these steps:

    • Save the permalink settings again on the wordpress settings panel
    • Deactivate/activate WooCommerce and Ajax Search Pro

    This should refresh the permalink cache, and it might help.

    If not, then another solution is to connect a function to the results link filter and add the “produkt” part manually:

    If the upper mentioned solutions are not working, then add the following code to your themes functions.php file. It will try to fix the url.

    
    add_filter( "asp_results", "asp_fix_woocommerce_link", 1, 1 );
    
    function asp_fix_woocommerce_link( $results ) {
      $home_url = home_url();
      
      if (strpos($home_url, "hundbutik") === false) {
        foreach ($results as $k=>$v) {   
          $results[$k]->link = str_replace("hundbutik/", "hundbutik/produkt/", $results[$k]->link);
        }
      }
     
      return $results;
    }
    
    Best,
    Ernest Marcinko

    If you like my products, don't forget to rate them on codecanyon :)


    #3771
    miag
    miag
    Participant

    Hi
    The first action to refresh the permalink cache didn’t work.
    Added the filter to my child theme function.php, fixed.

    Thank’s
    Michael

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.