Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当特定产品类别中的商品位于Woocommerce购物车中时禁用购物_Php_Wordpress_Woocommerce_Cart_Custom Taxonomy - Fatal编程技术网

Php 当特定产品类别中的商品位于Woocommerce购物车中时禁用购物

Php 当特定产品类别中的商品位于Woocommerce购物车中时禁用购物,php,wordpress,woocommerce,cart,custom-taxonomy,Php,Wordpress,Woocommerce,Cart,Custom Taxonomy,我试图禁用购物,如果一个特定产品类别的项目在购物车(这是一个订阅形式的产品与标签-结帐和运输剥离)。将该产品添加到购物车时,不允许添加其他产品 我尝试了以下线程代码: 但是没有帮助 如果特定产品类别位于Woocommerce购物车中,如何禁用购物 2018年10月-改进的更新代码版本: 请尝试以下代码,这将: 当特定产品类别的产品在购物车中时,避免添加到购物车 将特定产品类别中的产品添加到购物车时,删除其他购物车项目 守则: // Remove other items when our

我试图禁用购物,如果一个特定产品类别的项目在购物车(这是一个订阅形式的产品与标签-结帐和运输剥离)。将该产品添加到购物车时,不允许添加其他产品

我尝试了以下线程代码:

但是没有帮助

如果特定产品类别位于Woocommerce购物车中,如何禁用购物

2018年10月-改进的更新代码版本:

请尝试以下代码,这将:

  • 当特定产品类别的产品在购物车中时,避免添加到购物车
  • 将特定产品类别中的产品添加到购物车时,删除其他购物车项目
  • 守则:

    // Remove other items when our specific product is added to cart
    add_action( 'woocommerce_add_to_cart', 'remove_other_products_on_add_to_cart', 10, 6 );
    function remove_other_products_on_add_to_cart ( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ){
        // HERE set your product category (can be term IDs, slugs or names)
        $category = 'posters';
    
        // We remove other items when our specific product is added to cart
        if( has_term( $category, 'product_cat', $product_id ) ) {
            foreach( WC()->cart->get_cart() as $item_key => $cart_item ){
                if( ! has_term( $category, 'product_cat', $cart_item['product_id'] ) ) {
                    WC()->cart->remove_cart_item( $item_key );
                }
            }
        }
    }
    
    // Avoid other items to be added to cart when our specific product is in cart
    add_filter( 'woocommerce_add_to_cart_validation', 'check_and_limit_cart_items', 10, 3 );
    function check_and_limit_cart_items ( $passed, $product_id, $quantity ){
        // HERE set your product category (can be term IDs, slugs or names)
        $category = 'posters';
    
        // We exit if the cart is empty
        if( WC()->cart->is_empty() )
            return $passed;
    
        // CHECK CART ITEMS: search for items from product category
        foreach ( WC()->cart->get_cart() as $cart_item ){
            if( has_term( $category, 'product_cat', $cart_item['product_id'] ) ) {
                // Display an warning message
                wc_add_notice( __('A subscription is already in cart (Other items are not allowed in cart).', 'woocommerce' ), 'error' );
                // Avoid add to cart
                return false;
            }
        }
        return $passed;
    }
    
    代码进入活动子主题(或活动主题)的function.php文件。测试和工作

    2018年10月-改进的更新代码版本:

    请尝试以下代码,这将:

  • 当特定产品类别的产品在购物车中时,避免添加到购物车
  • 将特定产品类别中的产品添加到购物车时,删除其他购物车项目
  • 守则:

    // Remove other items when our specific product is added to cart
    add_action( 'woocommerce_add_to_cart', 'remove_other_products_on_add_to_cart', 10, 6 );
    function remove_other_products_on_add_to_cart ( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ){
        // HERE set your product category (can be term IDs, slugs or names)
        $category = 'posters';
    
        // We remove other items when our specific product is added to cart
        if( has_term( $category, 'product_cat', $product_id ) ) {
            foreach( WC()->cart->get_cart() as $item_key => $cart_item ){
                if( ! has_term( $category, 'product_cat', $cart_item['product_id'] ) ) {
                    WC()->cart->remove_cart_item( $item_key );
                }
            }
        }
    }
    
    // Avoid other items to be added to cart when our specific product is in cart
    add_filter( 'woocommerce_add_to_cart_validation', 'check_and_limit_cart_items', 10, 3 );
    function check_and_limit_cart_items ( $passed, $product_id, $quantity ){
        // HERE set your product category (can be term IDs, slugs or names)
        $category = 'posters';
    
        // We exit if the cart is empty
        if( WC()->cart->is_empty() )
            return $passed;
    
        // CHECK CART ITEMS: search for items from product category
        foreach ( WC()->cart->get_cart() as $cart_item ){
            if( has_term( $category, 'product_cat', $cart_item['product_id'] ) ) {
                // Display an warning message
                wc_add_notice( __('A subscription is already in cart (Other items are not allowed in cart).', 'woocommerce' ), 'error' );
                // Avoid add to cart
                return false;
            }
        }
        return $passed;
    }
    


    代码进入活动子主题(或活动主题)的function.php文件。测试并正常工作。

    是的,检查了自定义并禁用了所有插件,然后出现了相同的错误…好的,我稍后会再来检查一次…@AmitSharma抱歉,第一个函数名有一个输入错误…我已更新了代码。它现在应该可以工作了。@AmitSharma再次测试,效果很好……你应该尝试澄清你的解释,因为它们是不可理解的。我暂时不能做更多的事情。问题是一旦订阅在购物车中,其他产品就不应该显示。如果我们的特定产品在购物车中,则应通过通知删除/删除/禁止其他项目…//当我们的特定产品添加到购物车中时,我们会删除其他项目//当我们的特定产品在购物车中时,我们会避免添加到购物车中的其他项目exist@AmitSharma在你的问题中你没有问这个…实际上,当订阅被添加时,它从购物车中删除所有其他产品,并避免任何其他添加到购物车的操作:因此购物被禁用。现在隐藏商店和产品页面,这是你在最初的问题中没有问的另一件事。这个答案与您在初始问题中提出的问题相关。如果你想隐藏商店和产品,那是不一样的,你应该问一个新问题。是的,检查了自定义并禁用了所有插件,然后出现了太多相同的错误…好的,我稍后会再来检查一次…@AmitSharma抱歉,第一个函数名有一个打字错误…我已经更新了代码。它现在应该可以工作了。@AmitSharma再次测试,效果很好……你应该尝试澄清你的解释,因为它们是不可理解的。我暂时不能做更多的事情。问题是一旦订阅在购物车中,其他产品就不应该显示。如果我们的特定产品在购物车中,则应通过通知删除/删除/禁止其他项目…//当我们的特定产品添加到购物车中时,我们会删除其他项目//当我们的特定产品在购物车中时,我们会避免添加到购物车中的其他项目exist@AmitSharma在你的问题中你没有问这个…实际上,当订阅被添加时,它从购物车中删除所有其他产品,并避免任何其他添加到购物车的操作:因此购物被禁用。现在隐藏商店和产品页面,这是你在最初的问题中没有问的另一件事。这个答案与您在初始问题中提出的问题相关。如果你想隐藏商店和产品,那是不一样的,你应该问一个新问题。这是你最初问题的文本:如果购物车中有特定类别,则禁用购物“我正在尝试禁用购物车中的某个类别,该类别是以带有标签的产品形式订阅的,结帐发货将被剥离。一旦将跳过结帐页面的隐藏类别添加到购物车中,就不允许添加任何其他产品。我参考了一些参考资料,但没有帮助。“是的,我正在寻找解决方案无法解决的问题。谢谢。随附的图片显示购物未被禁用。当你问一些问题时,你只需要说清楚。如果你要鸡肉,即使两者都是肉,你也得不到牛肉……我的答案是回答你最初的问题。因此,你最好提出一个新问题,注意你所问的问题,注意单词和句子,使其清晰易懂。“当该产品添加到购物车时,不允许添加其他产品。”上面提到的是您最初问题的文本:如果购物车中的特定类别不存在,则禁用购物“我正在尝试禁用购物车中的某个类别,该类别是以带有标签的产品形式订阅的,结帐发货将被剥离。一旦将跳过结帐页面的隐藏类别添加到购物车中,就不允许添加任何其他产品。我参考了一些参考资料,但没有帮助。“是的,我正在寻找解决方案无法解决的问题。谢谢。随附的图片显示购物未被禁用。当你问一些问题时,你只需要说清楚。如果你要鸡肉,即使两者都是肉,你也得不到牛肉……我的答案是回答你最初的问题。因此,你最好提出一个新问题,注意你所问的问题,注意单词和句子,使其清晰易懂。“当该产品添加到购物车时,不允许添加其他产品。”如上所述