Woocommerce-在单个订单中禁用可下载产品和其他产品

时间:2020-05-03 15:05:47

标签: woocommerce hook-woocommerce

我希望在购物车/订单中停止混合不同类型的产品。

用例-可下载的非虚拟产品不应与单个购物车/订单中的任何其他产品一起使用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

   add_filter( 'woocommerce_add_to_cart_validation', 'remove_all_other_if_individual' );

    function remove_all_other_if_individual( $cart_item_data ) {

        global $woocommerce;
        $items                       = $woocommerce->cart->get_cart();
        $is_downloadable_incart  = false;
        foreach ( $items as $item => $values ) {
            $_product                    = wc_get_product( $values[ 'data' ]->get_id() );
            if ( $_product->is_downloadable() )
                $is_downloadable_incart  = TRUE;
        }
        if ( $is_downloadable_incart )
            $woocommerce->cart->empty_cart();

        // Do nothing with the data and return
        return true;
    }