点击WooCommerce购物车「移除商品」按钮可用的钩子咨询
解决WooCommerce购物车移除商品时触发外部数据库更新的问题
核心问题:钩子名称错误
你使用的woocommerce_cart_item_remove钩子名称不正确,WooCommerce中对应「移除购物车商品」的正确钩子是woocommerce_remove_cart_item——这是代码无效果的直接原因。
修正后的代码示例
以下是调整后的完整代码,同时补充了购物车项数据的正确获取逻辑:
add_action('woocommerce_remove_cart_item', 'andom_woocommerce_remove_from_cart_action', 10, 2); function andom_woocommerce_remove_from_cart_action($cart_item_key, $cart){ // 获取当前登录用户ID $current_user_id = get_current_user_id(); if (empty($current_user_id)) { // 未登录用户可按需处理,比如直接返回 return; } // 获取被移除的购物车项详情 $cart_item = $cart->get_cart_item($cart_item_key); if (empty($cart_item)) { return; } // 提取商品ID、数量等关键数据 $product_id = $cart_item['product_id']; $request_quantity = $cart_item['quantity']; // 补充你的其他变量逻辑(如$curProdRatType、$pOrderMonth等) // ...... $outConsumption = array( 'id' => $resultId, 'pId' => $product_id, 'cId' => $current_user_id, 'pRationType' => $curProdRatType, 'pQuantity' => $request_quantity, 'pMonth' => $pOrderMonth, 'pYear' => $pOrderYear, ); andom_cart_consumption_handler('Delete', $outConsumption); }
调试小贴士
- 可在函数开头添加
error_log('移除商品钩子已触发');,查看wp-content/debug.log文件确认钩子是否正常触发 - 单独测试
andom_cart_consumption_handler函数的「Delete」操作逻辑,确保外部数据库更新功能本身无问题
内容的提问来源于stack exchange,提问作者AnDom
相关产品推荐
相关产品推荐

