WooCommerce Related Products by Attribute

Question

I want to display products that are related either by category or attributes (not tags)

I’ve modified the solution posted here here to my needs:

function custom_related_product_args ( $args ){
    global $product;

    $cats          = wc_get_product_terms( $product->id, 'product_cat', array( 'fields' => 'slugs' ) );
    $brands        = wc_get_product_terms( $product->id, 'pa_brand', array( 'fields' => 'slugs' ) );
    $collections   = wc_get_product_terms( $product->id, 'pa_collection', array( 'fields' => 'slugs' ) );    

    unset( $args['post__in'] );
    $args['tax_query'] = array( 
        'relation' => 'OR',
        array(
            'taxonomy' => 'product_cat',
            'field'    => 'slug',
            'terms'    => $cats,
        ),
        array(
            'relation' => 'OR',
            array(
                'taxonomy' => 'pa_brand',
                'field'    => 'slug',
                'terms'    => $brands,
            ),
            array(
                'taxonomy' => 'pa_collection',
                'field'    => 'slug',
                'terms'    => $collections,
            )
        )
    );

    return $args;
}
add_filter('woocommerce_related_products_args', 'custom_related_product_args');

However it doesn’t seem to work for me and I can’t figure out what I’m doing wrong?

0
, , Dan 2 years 2020-01-13T08:39:37-05:00 0 Answers 405 views 0

Leave an answer

Browse
Browse