woocommerce hook 从购物车中删除产品

Posted

技术标签:

【中文标题】woocommerce hook 从购物车中删除产品【英文标题】:woocommerce hook delete product from the cart 【发布时间】:2015-06-29 12:05:03 【问题描述】:

你在做什么? 我在文件末尾写了这个字符串(wp-content/plugins/woocommerce/woocommerce.php):

add_filter('woocommerce_before_cart_item_quantity_zero', 'wordpress_before_cart_item_quantity_zero', 10, 1);

function wordpress_before_cart_item_quantity_zero($item) 
    global $wpdb;
    global $woocommerce;

    $cart = $woocommerce->cart;

    foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) 
        $id_product = $cart_item['product_id'];
        $wpdb->prepare("DELETE FROM wp_block_product WHERE product_id = %d", $id_product);
        $preparing_query = $wpdb->query($preparing_query);
    

    var_dump($wpdb);
    exit;

但是当我从购物车中删除商品时它不起作用!

我曾尝试这样做:

add_action('woocommerce_before_cart_item_quantity_zero', 'wordpress_before_cart_item_quantity_zero');

但它也不起作用

【问题讨论】:

【参考方案1】:

根据the source,您正在寻找'woocommerce_cart_item_removed',它在商品从购物车中移除时运行:

function so31115243_after_remove_product($cart_item_key) 
    // Your custom function

add_action( 'woocommerce_cart_item_removed', 'so31115243_after_remove_product' );

【讨论】:

我有一个问题:当我在购物车中有一件商品时,为什么 $woocommerce->cart->get_cart() 会返回空数组? @DanyaAndreew Hook 在商品从购物车中移除后运行!【参考方案2】:

还有一个钩子在移除项目之前运行,即woocommerce_remove_cart_item

我相信这就是 Danya 在上面的评论中寻找的东西,以防万一有人遇到类似问题。

【讨论】:

【参考方案3】:

@rnevius 解决方案有效,但需要更改操作的优先级。对我来说是 21,但我认为它可以改变使用它的插件。

add_action( 'woocommerce_cart_item_removed', 'so31115243_after_remove_product', 21 );

【讨论】:

【参考方案4】:
function so_27030769_maybe_empty_cart() 

global $woocommerce;
$woocommerce->cart->empty_cart();
add_filter( 'woocommerce_add_to_cart_validation_custom', 'so_27030769_maybe_empty_cart', 10, 3 );
// Usage
apply_filters('woocommerce_add_to_cart_validation_custom','','');

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于woocommerce hook 从购物车中删除产品的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 购物车中隐藏特定产品类别的缩略图

WooCommerce 中特定产品类别的最低购物车数量

在 WooCommerce 中最后对特定产品类别的购物车项目进行排序

隐藏产品价格并禁用 Woocommerce 中特定产品类别的添加到购物车

替换产品类别的 Woocommerce 单一产品页面上的“添加到购物车”按钮

从 WooCommerce 中的订单总额中删除运费总额