【问题标题】:How to remove cart items from WooCommerce Session for a specific category如何从 WooCommerce 会话中删除特定类别的购物车项目
【发布时间】:2020-10-13 11:53:21
【问题描述】:

我正在开发基于 WooCommerce 的网站。我有很多产品,所有产品都分配到不同的产品类别。

现在我需要完全删除某个类别的产品,例如“woo-cat”。

有很多自定义插件和主题,其中有条件地使用了这个类别的id/slug,所以我决定不删除该类别的类别、该类别的产品或该类别的相关代码。

但我将所有可能出现的 URL 重定向到包含该类别的商店页面

就像我重定向 - 单页产品、分类列表页、也隐藏在实时搜索中等等...

我的问题是,如果任何用户在购物车中添加了该类别的产品,并且只关闭浏览器而不购买,那么它将保留在购物车会话中,我如何删除那些已经在购物车会话中的特定类别的产品.

检查下面的屏幕截图,这出现在我的网站顶部:

PS:我不能这样做,当用户登录时使用_woocommerce_persistent_cart_清空购物车,因为访客用户也可以在不登录的情况下购买产品并在结帐页面注册。

【问题讨论】:

    标签: php wordpress session woocommerce cart


    【解决方案1】:

    要从特定产品类别的会话中删除项目,您将使用以下内容:

    add_filter( 'woocommerce_pre_remove_cart_item_from_session', 'pre_remove_items_from_a_specific_category', 10, 3 );
    function pre_remove_items_from_a_specific_category( $remove, $key, $values ){
        // Here define your product category(ies) - can be a term id, slug orname
        $categories = array('t-shirts');
    
        if ( has_term( $categories, 'product_cat', $values['product_id'] ) ) {
            $remove = true;
        }
        return $remove;
    }
    

    代码在您的活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2017-08-29
      • 1970-01-01
      相关资源
      最近更新 更多