$posts_per_page, 'columns' => $columns, ); $args = wp_parse_args( $defaults, $args ); return $args; } add_filter( 'woocommerce_output_related_products_args', 'botiga_woocommerce_related_products_args' ); /** * Related products as slider */ function botiga_woocommerce_output_related_products_slider( $args = array() ) { global $product; if ( ! $product ) { return; } $posts_per_page = get_theme_mod( 'shop_single_related_products_number', 3 ); $columns = get_theme_mod( 'shop_single_related_products_columns_number', 3 ); $shop_single_related_products_slider_nav = get_theme_mod( 'shop_single_related_products_slider_nav', 'always-show' ); $defaults = array( 'posts_per_page' => $posts_per_page, 'orderby' => 'rand', 'order' => 'desc' ); $args = wp_parse_args( $args, $defaults ); // Get visible related products then sort them at random. $args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(), $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' ); // Handle orderby. $related_products = wc_products_array_orderby( $args['related_products'], $args['orderby'], $args['order'] ); if( count( $related_products ) === 0 ) { return; } ?>