当前位置: 首页 > 知识库问答 >
问题:

如何从WooCommerce会话中删除特定类别的购物车项目

侯和惬
2023-03-14

我在基于WooCommerce的网站上工作。我在里面有很多产品,所有产品都被分配到不同的产品类别。

现在,我有一个要求,完全删除一个类别的产品,如“woo猫”。

有许多自定义插件和主题,在其中有条件地使用该类别的id/slg,所以我决定不删除类别,该类别的产品或该类别的相关代码

但我重定向每一个可能出现的URL到商店页面中的类别是包括

像我重定向-单页的产品,类别列表页,也隐藏从现场搜索等。。。

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

PS:我不能这样做,当用户登录时,然后使用\u woocommerce\u persistent\u cart\uuu清空购物车,因为来宾用户也可以在不登录的情况下通过在结账页面注册来购买产品。

共有1个答案

鲜于念
2023-03-14

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

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活动子主题(或活动主题)的文件中。测试和工作。

 类似资料:
  • 我写的函数应该检查是否有在购物车的项目,其中有一个特定的类别。 我的想法是: 我猜,get_cart()函数将返回购物车的内容,我将能够从中获取有关商品类别的信息。我需要知道get_cart()返回数组的结构,所以我写了: 得到 然后,我尝试在get_cart()函数的结果中查找类别名称: 得到了同样的错误。 使用$woocommerce而不是WC()不会产生任何效果,也不会删除 我做错了什么?我

  • 你在为它做什么?我在文件末尾(wp-content/plugins/woocommerce/woocommerce.php)写了这个字符串: 但当我从购物车中删除项目时,它就不起作用了! 但也不起作用

  • 我在购物车和结账页面中显示Woocommerce产品类别。然而,我试图让它只显示文本,并防止它被“点击”-即删除链接。 我试过用浏览器工具检查,用CSS删除,但没有成功。-感谢您的帮助! 以下是用于在签出页面中显示类别的代码:

  • 在WooCommerce中,我需要为产品类别的每一项设置最低数量。我搜索了论坛,找到了一些代码,除了它只计算一个产品类别的总数量外,其他代码运行良好: 例如,如果我有两个属于同一产品类别的产品(A和B),并将该类别的最小数量设置为5,则在这种情况下不会出现客户的错误消息: 产品A:3 产品乙:2 我需要一个最小的数量5的每一个产品的类别。 您知道如何更改和优化以下代码吗?

  • 真实的例子:一位顾客在购物车中购买了以下产品: 产品A,重量:0.2kg,数量:2,装运类别:免费装运 我的客户使用的是一个表费率运输插件,它只能通过使用购物车内容总重量计算运输成本,在这种情况下,它是3.0kg。 但真正的可充电重量只有2.6公斤... 已经到处搜索,找不到任何函数来计算特定装运类别的购物车项目重量小计,因此我们刚刚起草了以下函数,但它似乎不起作用。有人能帮助改进这个功能吗?

  • 我必须删除购物车上的项目,令人惊讶的是,在实现销毁功能后,Laravel没有显示任何错误(我非常begginer上php <代码>http://localhost:8000/cart?_token=9XiWI3YPPmkctOEPBsEoAyF4UeAkAG3hJLLXHTl9 查看: 路线: 产品控制器: