You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 01:51:13