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 中特定产品类别的添加到购物车