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

如何用wc_deposits_product_enable_deposit过滤器禁用指定产品的WooCommerce Deposits功能

WooCommerce Deposits 指定产品禁用定金功能修复方案

原代码存在的问题

  • 钩子参数数量不匹配:add_filter 声明接受3个参数,但回调函数只定义了2个入参,参数数量不匹配会导致钩子逻辑无法正常执行
  • 运算符使用错误:if ($product = 6283) 是赋值操作而非相等判断,会强制给$product变量赋值为6283,判断逻辑永远返回真,完全不符合需求
  • 冗余代码:已经直接拿到$product_id参数,不需要额外调用wc_get_product获取产品对象,无用代码会增加不必要的性能开销

修复后可用代码

add_filter('wc_deposits_product_enable_deposit','wcdp_custom_wc_deposits_disable_productid',10,2);
function wcdp_custom_wc_deposits_disable_productid($enabled , $product_id) {
    // 填入需要禁用定金的产品ID,多个ID用英文逗号分隔即可,比如 [6283, 1234, 5678]
    $disabled_product_ids = [6283];
    if (in_array($product_id, $disabled_product_ids)) {
        $enabled = false;
    }
    return $enabled;
}

代码说明

  • 调整add_filter最后一个参数为2,和回调函数的入参数量保持一致,保证钩子参数能正常传入
  • 直接使用钩子自带的$product_id做判断,省去多余的产品对象查询操作
  • 用数组存储需要禁用的产品ID,后续如果要新增禁用的产品,只需要往数组里加ID即可,维护更方便

内容的提问来源于stack exchange,提问作者Franceoutdoors

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:06:02