// Relevanssi add_filter( 'relevanssi_orderby', 'woocommerce_relevanssi_orderby' ); function woocommerce_relevanssi_orderby( $orderby ) { if ( in_array( $orderby, array( 'price', 'price-desc' ), true ) ) { global $wp_query; $orderby = 'meta_value_num'; $wp_query->query_vars['meta_key'] = '_price'; } if ( 'price' === $orderby ) { global $rlv_wc_order; $rlv_wc_order = 'asc'; } if ( 'date ID' === $orderby ) { $orderby = 'post_date'; } if ( 'popularity' === $orderby ) { global $wp_query, $rlv_wc_order; $orderby = 'meta_value_num'; $rlv_wc_order = 'desc'; $wp_query->query_vars['meta_key'] = 'total_sales'; } return $orderby; } add_filter( 'relevanssi_order', 'woocommerce_relevanssi_order' ); function woocommerce_relevanssi_order( $order ) { global $rlv_wc_order; if ( $rlv_wc_order ) { $order = $rlv_wc_order; } return $order; } // upsell attt // // function modify_woocommerce_upsell_display_based_on_attribute( $limit = '-1', $columns = 4, $orderby = 'rand', $order = 'desc' ){ remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 ); global $product; if ( ! $product ) { return; } // Handle the legacy filter which controlled posts per page etc. $args = apply_filters( 'woocommerce_upsell_display_args', array( 'posts_per_page' => $limit, 'orderby' => $orderby, 'order' => $order, 'columns' => $columns, ) ); wc_set_loop_prop( 'name', 'up-sells' ); wc_set_loop_prop( 'columns', apply_filters( 'woocommerce_upsells_columns', isset( $args['columns'] ) ? $args['columns'] : $columns ) ); $orderby = apply_filters( 'woocommerce_upsells_orderby', isset( $args['orderby'] ) ? $args['orderby'] : $orderby ); $order = apply_filters( 'woocommerce_upsells_order', isset( $args['order'] ) ? $args['order'] : $order ); $limit = apply_filters( 'woocommerce_upsells_total', isset( $args['posts_per_page'] ) ? $args['posts_per_page'] : $limit ); // set your custom taxonomy here. $taxonomy = 'pa_producer'; $term_slugs = wp_get_post_terms( $product->get_id(), $taxonomy, ['fields' => 'slugs'] ); $posts_ids = get_posts( array( 'post_type' => 'product', 'ignore_sticky_posts' => 1, 'posts_per_page' => 6, 'post__not_in' => array( $product->get_id() ), 'tax_query' => array( array( 'taxonomy' => $taxonomy, 'field' => 'slug', 'terms' => $term_slugs, ) ), 'fields' => 'ids', 'orderby' => 'rand', ) ); if( !empty( $posts_ids ) ){ // Get visible upsells then sort them at random, then limit result set. $upsells = wc_products_array_orderby( array_filter( array_map( 'wc_get_product', $posts_ids ), 'wc_products_array_filter_visible' ), $orderby, $order ); $upsells = $limit > 0 ? array_slice( $upsells, 0, $limit ) : $upsells; wc_get_template( 'single-product/up-sells.php', array( 'upsells' => $upsells, // Not used now, but used in the previous version of up-sells.php. 'posts_per_page' => $limit, 'orderby' => $orderby, 'columns' => $columns, ) ); } } add_action( 'woocommerce_after_single_product_summary', 'modify_woocommerce_upsell_display_based_on_attribute', 15 ); //breadcrumbs home // // add_filter('woocommerce_breadcrumb_defaults', function( $defaults ) { unset($defaults['home']); //removes home link. return $defaults; //returns rest of links }); /** * Change the breadcrumb separator */ add_filter( 'woocommerce_breadcrumb_defaults', 'wcc_change_breadcrumb_delimiter' ); function wcc_change_breadcrumb_delimiter( $defaults ) { // Change the breadcrumb delimeter from '/' to '>' $defaults['delimiter'] = ' > '; return $defaults; } /** * @snippet WooCommerce Remove Order Again Button @ Checkout Page */ remove_action( 'woocommerce_order_details_after_order_table', 'woocommerce_order_again_button' );