【问题标题】:How to automatically set cross-sells in WooCommerce based on product category如何根据产品类别自动设置交叉销售
【发布时间】:2020-07-24 06:10:24
【问题描述】:

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

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

或者如果他们有多个类别的项目,那么只需随机选择两个。

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

【问题讨论】:

    标签: wordpress function woocommerce shopping-cart


    【解决方案1】:

    以下代码从购物车中的产品自动返回 $cross_sells 属于产品类别 (y)(ies) 的 ID

    function my_cart_crosssell_ids( $cross_sells, $cart ) {
    
        // Set emtpy array
        $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', 'my_cart_crosssell_ids', 10, 2 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      相关资源
      最近更新 更多