2014-10-07 4 views
0

아시다시피 woocommerce는 관련 태그 및 카테고리에 따라 관련 제품을 필터링합니다. 그렇기 때문에 대부분의 제품이 많은 대형 쇼핑 웹 사이트에서는 주 제품과 비교하여 관련성이없는 관련 제품을 보여줍니다.관련 상품 woocommerce

어떻게 작동하는지 변경하고 싶습니다. 나는 주요 제품의 이름에 따라 관련 제품을 보여주고 싶다. 내 모든 유사한 제품은 색상을 제외하고 같은 이름을 가지고 있습니다. 따라서 이름에 따라 관련 제품을 필터링하기 위해 해킹 코드를 추가 할 수 있다면 훨씬 더 유용 할 것입니다.

예 : 정확히 비슷한 단어를 바탕으로 제품을 필터링하는 코드가있는 경우 "Ascis Gel Cumulus 15 Men Black"이라는 제품이 있다고 가정하면 좋습니다.

--- 정확한 6 단어가 정확히 일치하는 경우 관련 제품으로 표시합니다. 그렇지 않은 경우 정확히 5 개의 유사한 단어가있는 제품을 표시하고 정확히 4 개의 유사한 단어가있는 제품은 표시하지 않습니다 ...

여러분이 저를 도울 수 있다면 정말 고맙겠습니다.

P.s :이 webiste는 이름별로 정렬합니다. 그 때문에의

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

답변

0

는 많은 제품과 큰 쇼핑 웹 사이트에서 대부분의 시간, 그것은 주요 제품에 비해 무관 관련 제품을 보여줍니다.

본인은이 주장에 완전히 동의하지 않습니다. "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);

를 볼 수 있습니다 당신은 abstract-wc-product.php 다시 제품 클래스에 get_related() 기능을 추적 할 수 있습니다.

get_related()에서 보면 고급 SQL 쿼리를 설정하지만 woocommerce_product_related_posts_query 필터를 통해 쿼리 절을 필터링 할 수 있습니다. woocommerce_product_related_posts_relate_by_category 필터에 해당하는 경우

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_tag 필터가 true로 설정된 경우 쿼리는 태그별로 제품을 관련시킵니다. 이 두 가지 모두 기본적으로 true로 설정됩니다. 둘 다 사용하지 못하게 할 수는 있지만 나 자신의 사용자 지정 SQL을 작성하지 않고 가장 최근의 제품을 쿼리하는 것 이상의 일을한다는 것을 모릅니다.

관련 문제