【问题标题】:change Related Products in woocommerce更改 woocommerce 中的相关产品
【发布时间】:2015-10-07 21:19:49
【问题描述】:

如您所知,woocommerce 根据标签和类别过滤相关产品。正因为如此,在一个拥有这么多产品的大型购物网站中,大多数时候,与主产品相比,它会显示无关紧要的相关产品。

我想改变它的工作方式。我的意思是我想根据主要产品的名称显示相关产品。我所有类似的产品都有相同的名称,除了颜色。因此,如果我可以添加一个 hack 代码来根据名称过滤相关产品,那将更加有用。

示例:假设我有一个名为“Ascis Gel Cumulus 15 Men Black”的产品,如果我有一个代码可以根据完全相似的词过滤产品,那就太好了。

---> 如果它们恰好有 6 个相似的确切词,则显示为相关产品。如果不是,则显示恰好有 5 个相似词的产品,如果不显示恰好有 4 个相似词的产品,依此类推...

如果你们能帮我解决这个问题,我将不胜感激。

P.s : 我猜这个网站是根据名字对它们进行排序的。

http://www.barcin.com/nike-air-max-2014-spor-ayakkabi-621077-009

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    因此,在一个拥有如此多产品的大型购物网站中,大多数情况下,与主要产品相比,它会显示不相关的相关产品。

    我不完全同意这种说法。如果“Ascis Gel Cumulus 15 Men Black”和“Ascis Gel Domain 15 Men Black”都在 Asics 类别中,它们将是相关的。他们可以将 Gel Cumulus 和 Gel Domain 作为子类别或标签。我不知道,但让我印象深刻的是,如果您有效地对事物进行分类和标记,您将获得更好的相关产品。我认为您也可以使用以下建议添加自定义属性。

    也就是说,我相信可以调整相关产品的查询方式。然而,这并不是一件容易的事,因为我的 SQL 不太好,所以我只能提供部分答案。如果您查看single-product/related.php 模板,您会看到

    $related = $product->get_related( $posts_per_page );

    您可以将get_related() 函数追溯到产品类 abstract-wc-product.php.

    查看get_related(),它设置了一个高级SQL 查询,但您可以通过woocommerce_product_related_posts_query 过滤器过滤查询子句。

    add_filter( 'woocommerce_product_related_posts_query'. so_26246618_product_related_posts_query', 10, 2 );
    
    function so_26246618_product_related_posts_query( $query, $product ){
    
        global $wpdb;
    
        $query['join']   = // write a new join clause;
        $query['where'] = // write a new where clause
    
        return $query;
    
    }
    

    或者,如果woocommerce_product_related_posts_relate_by_category 过滤器为真,则查询将按产品类别关联产品。同样,如果 woocommerce_product_related_posts_relate_by_tag 过滤器设置为 true,则查询将通过标签关联产品。默认情况下,这两者都设置为 true。您可以同时禁用它们,但我不知道您除了查询最新产品而不编写您自己的自定义 SQL 之外,还会做任何其他事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多