【问题标题】:Clear Woocommerce cart when sending multiple items by url通过 url 发送多个项目时清除 Woocommerce 购物车
【发布时间】:2020-03-13 22:13:23
【问题描述】:

我需要清理 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。

通过 url 发送超过 4 件商品时,我只需要清空购物车。

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

【问题讨论】:

  • 你试过把 5 改成 4 吗?
  • @HowardE 问题不在于条件语句是否正确。但是感谢您的帮助。
  • 这是做什么的? exemple.net/cart?fill_cart=100,101,102,103,104,105,106 你能发布获取该 URL 参数的函数吗?或者这就是你想在这里得到的......一个函数来做到这一点?
  • @HowardE “fill_cart”参数随 WooCommerce 的购物车链接插件一起提供。通过 url 发送超过 4 个项目时,我需要清除购物车,无论是否使用 fill_cart,但通过 url。

标签: php wordpress woocommerce hook-woocommerce


【解决方案1】:

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

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

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

2) 编辑插件文件soft79-cart-links-for-woocommerce.php,位于:yoursite/wp-content/plugins/soft79-cart-links-for-woocommerce/

3) 转到第141行或找到方法fill_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!

保存文件。现在任何通过 url 到达的新商品都必须先清理购物车。

【讨论】:

  • 注意:这个解决方案和我的问题有点不同,因为公司的销售部门告诉我,我不再需要检查链接上是否有四个以上的商品,只需在之前清理购物车即可一个新项目通过 url 到达。谢谢@霍华德!我们的谈话给了我其他想法!
猜你喜欢
  • 2019-03-21
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 2014-10-11
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
相关资源
最近更新 更多