2014-10-07 5 views
0

Как известно, woocommerce фильтрует связанные продукты в соответствии с их тегами и категориями. Из-за этого, на большом веб-сайте с большим количеством продуктов, в большинстве случаев, он показывает нерелевантные связанные продукты по сравнению с основным продуктом.change Связанные продукты в woocommerce

Я хочу изменить, как это работает. Я имею в виду, что я хочу показать сопутствующие продукты в соответствии с названием основного продукта. Все мои аналогичные продукты имеют одно и то же имя, кроме цвета. Поэтому, если я могу добавить код взлома для фильтрации связанных продуктов по именам, это было бы намного более полезно.

Пример: Предположим, у меня есть продукты, которые называются «Ascis Gel Cumulus 15 Men Black», если у меня есть код для фильтрации продуктов на основе точных похожих слов, это было бы здорово.

---> показать как сопутствующие товары, если они имеют ровно 6 одинаковых точных слов. если нет, показывать продукты, имеющие ровно 5 похожих слов, если не показывать продукты, имеющие ровно 4 похожих слова и т. д. ...

Я бы очень признателен, если вы, ребята, могли бы мне помочь.

P.s: Я предполагаю, что этот веб-сайт сортирует их по именам.

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, они будут связаны. Они могут иметь гель-кучевые и гель-домен в качестве подкатегорий или тегов. Я не знаю, но мне кажется, что если вы категоризируете и помечаете вещи эффективно, вы получите лучшие сопутствующие продукты. Я думаю, вы могли бы также добавить пользовательские атрибуты со следующим предложением.

Это, я считаю, можно настроить, как запрашиваются связанные продукты. Однако это нелегкий подвиг, так как я не так хорош в 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.

Смежные вопросы