如何根据产品类别在 WooCommerce 中自动设置交叉销售

问题描述 投票:0回答:1

我正在尝试编辑 WooCommerce 中购物车页面的交叉销售部分。我想在交叉销售部分显示同一类别的随机产品。

例如,有人添加了女性时尚类别中的某些产品,然后它会在交叉销售部分中显示同一类别的其他产品。

或者如果他们有多个类别的商品,则只需随机选择两个。

有没有办法做到这一点,还是必须单独检查每个产品来选择交叉销售产品?

php woocommerce product cart
1个回答
7
投票

以下代码会自动返回购物车中产品中属于产品类别的 ID。

$cross_sells

注意:

function filter_woocommerce_cart_crosssell_ids( $cross_sells, $cart ) { // Initialize $product_cats_ids = array(); $product_cats_ids_unique = array(); foreach ( $cart->get_cart() as $cart_item ) { // Get product id $product_id = $cart_item['product_id']; // Get current product categories id(s) & add to array $product_cats_ids = array_merge( $product_cats_ids, wc_get_product_term_ids( $product_id, 'product_cat' ) ); } // Not empty if ( !empty( $product_cats_ids ) ) { // Removes duplicate values $product_cats_ids_unique = array_unique( $product_cats_ids, SORT_REGULAR ); // Get product id(s) from a certain category, by category-id $product_ids_from_cats_ids = get_posts( array( 'post_type' => 'product', 'numberposts' => -1, 'post_status' => 'publish', 'fields' => 'ids', 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'field' => 'id', 'terms' => $product_cats_ids_unique, 'operator' => 'IN', ) ), ) ); // Removes duplicate values $cross_sells = array_unique( $product_ids_from_cats_ids, SORT_REGULAR ); } return $cross_sells; } add_filter( 'woocommerce_cart_crosssell_ids', 'filter_woocommerce_cart_crosssell_ids', 10, 2 ); 表示全部,这可以根据您的需求进行调整


可以通过
'numberposts' => -1

过滤器挂钩设置限制(

'posts_per_page'
woocommerce_cross_sells_total

	
© www.soinside.com 2019 - 2024. All rights reserved.