Php 通过url发送多个项目时清除购物车

Php 通过url发送多个项目时清除购物车,php,wordpress,woocommerce,hook-woocommerce,Php,Wordpress,Woocommerce,Hook Woocommerce,我需要的Woocommerce购物车清洁的情况下,我发送超过四个项目通过url到它 我提出了这段代码,但它只会在购物车中已经有五个项目时清理购物车 //in functions.php add_filter( 'woocommerce_add_to_cart_validation', 'remove_cart_item_before_add_to_cart', 20, 3 ); function remove_cart_item_before_add_to_cart( $passed, $pr

我需要的Woocommerce购物车清洁的情况下,我发送超过四个项目通过url到它

我提出了这段代码,但它只会在购物车中已经有五个项目时清理购物车

//in functions.php

add_filter( 'woocommerce_add_to_cart_validation', 'remove_cart_item_before_add_to_cart', 20, 3 );
function remove_cart_item_before_add_to_cart( $passed, $product_id, $quantity ) {
    if( WC()->cart->get_cart_contents_count() >= 5  )
        WC()->cart->empty_cart();
    return $passed;
}
另一个问题是,如果我通过url添加多个课程,即使上面的代码对我没有用处,也不起作用,如:

https://exemple.net/cart?fill_cart=100,101,102,103,104,105,106
也就是说,
functions.php
中的代码只在网站上运行,而不是通过url

所有我需要的是清除购物车时,发送超过4个项目的url


我更喜欢PHP解决方案,但JS解决方案就可以了。感谢有谁能帮助我。

我找到了一个使用免费插件的解决方案,并对其代码进行了一些更改

我将在下面描述我所做的:

1) 要开始安装插件,这将允许您使用url中的
fill\u cart
参数添加产品(如我的问题中所述)

2) 编辑woocommerce.php的插件文件
soft79购物车链接
可在以下网址找到:
yoursite/wp content/plugins/soft79购物车链接

3) 转到第141行或查找方法声明
fill\u cart

fill_cart
方法中,取消注释(或添加)代码以清洁购物车:

public function fill_cart( $fill_string ) {

    $original_notices = wc_get_notices();
    wc_clear_notices();

    ////Clear the cart
    //WC()->cart->empty_cart(); <-- uncomment here!
公共函数fill\u cart($fill\u string){
$original_notices=wc_get_notices();
wc_清除通知();
////清车

//WC()->cart->empty_cart();您是否尝试将5更改为4?@HowardE问题不在于条件语句是否正确。但感谢您的帮助。这是做什么的?您可以发布获取URL参数的函数吗?或者这就是您想要在这里获得的…一个函数来完成此操作?@HowardE“fill_cart”参数随WooCommerce的购物车链接插件一起提供。当通过url发送超过4个项目时,我需要清除购物车,无论是否使用fill_Cart,而是通过url。注意:此解决方案与我的问题略有不同,因为公司的销售部门通知我不再需要检查链接上是否有超过4个项目,在新物品通过url到达之前,请清理购物车。谢谢@HowardE!我们的对话给了我其他想法!