Похожие товары из родительской таксономии Woocommerce

Добавляем функцию

function motor_output_related_products($post, $taxonomy) {
    function get_parent_terms($term) {
        if ($term->parent > 0) {
            $term = wp_get_term_taxonomy_parent_id($term->parent, $taxonomy);
            if ($term->parent > 0) {
                get_parent_terms($term);
            } else return $term;
        }
        else return $term;
    }
    $related_category = wp_get_object_terms( $post, $taxonomy);
    $term = $related_category[0];
    $related_cat = get_parent_terms($term);
    $args = array(
        'post_type' => 'product',
        'post_status' => 'publish',
        'posts_per_page' => 4, // you may edit this number
        'orderby' => 'rand',
        'tax_query' => array(
            array(
                'taxonomy' => $taxonomy,
                'field' => 'id',
                'terms' => $related_cat
            )
        ),
        'post__not_in' => array ($post->ID),
    ); ?>
    <h2 class="prod-related-ttl"><?php esc_html_e( 'Related products', 'woocommerce' ); ?></h2>
    <?php woocommerce_product_loop_start(); 
    $related_items = new WP_Query( $args );?>
        <?// loop over query
        if ($related_items->have_posts()) :
            while ( $related_items->have_posts() ) : $related_items->the_post();     
                wc_get_template_part( 'content', 'product' );             
            endwhile;
        endif;
        // Reset Post Data
        wp_reset_postdata(); ?>
    <?php woocommerce_product_loop_end(); 
}

Если файлы плагина скопированы в тему:

woocomerce->content-single-product: меняем функцию

//woocommerce_output_related_products(); - меняем на нашу

motor_output_related_products($post->ID, 'product_parts');

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *