Отобразить сопутствующие товары на основе подкатегории - woocommerce - PullRequest
0 голосов
/ 02 мая 2018

Я хотел бы отобразить связанные продукты на странице моего отдельного продукта, которые относятся к подкатегории, а не к родительской категории. Теперь у меня есть около 100 продуктов, и около 90 из них относятся к одной родительской категории (они также относятся к другим родительским категориям). Так что на одной странице продукта вы можете увидеть практически любой случайный продукт из-за этой большой родительской категории. Есть ли способ ограничить это? Я провел исследование и нашел ответы, которые касались версии 1.6 woocommerce ... Теперь я использую 3.2.6, так что это не сработало.

1 Ответ

0 голосов
/ 02 мая 2018

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

add_filter( 'woocommerce_product_related_posts', 'woocommerce_get_direct_related_products' );

function woocommerce_get_direct_related_products() {
    global $woocommerce, $product;

    // Related products are found from category
    $cats_array = array(0);

    // Get categories
    $terms = wp_get_post_terms( $product->id, 'product_cat' );

    //Select only the category which doesn't have any children
    foreach ( $terms as $term ) {
        $children = get_term_children( $term->term_id, 'product_cat' );
        if ( !sizeof( $children ) )
            $cats_array[] = $term->term_id;
    }

    // Don't bother if none are set
    if ( sizeof( $cats_array ) == 1 ) return array();

    // Meta query
    $meta_query = array();
    $meta_query[] = $woocommerce->query->visibility_meta_query();
    $meta_query[] = $woocommerce->query->stock_status_meta_query();

    $limit = 5;

    // Get the posts
    return array(
        'orderby'       => 'rand',
        'posts_per_page'=> $limit,
        'post_type'     => 'product',
        'fields'        => 'ids',
        'meta_query'    => $meta_query,
        'tax_query'     => array(
            array(
                'taxonomy'  => 'product_cat',
                'field'     => 'id',
                'terms'     => $cats_array
            )
        )
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...