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

WooCommerce特定商品单页隐藏库存信息代码失效问题咨询

代码存在的问题

  • 过滤器参数配置错误:woocommerce_stock_html过滤器默认提供3个参数$html, $availability, $product,你在add_filter时仅设置了接收2个参数,导致函数无法获取到正确的$product和$availability变量值。
  • 函数参数名错误:你定义的回调函数第二个参数写为$text,实际应该是库存状态数组$availability,导致后续对$availability的判断完全失效。
  • 隐藏逻辑不完整:当前仅判断了「有货」状态的隐藏,勾选选项后缺货、低库存等其他库存状态仍然会展示,不符合全隐藏库存信息的需求。
  • 括号匹配&返回逻辑瑕疵:原函数的大括号闭合逻辑存在问题,未勾选隐藏选项时没有明确的默认返回$html的逻辑,部分场景可能返回空值。

修正后的完整代码

// 商品库存选项卡添加隐藏库存复选框
function action_woocommerce_hide_product_stock_info() {
    woocommerce_wp_checkbox( array( 
        'id'             => '_hide_stock_status',
        'label'          => __( 'Hide product stock info', 'woocommerce' ),
        'desc_tip'       => false,
        'description'    => __( 'Dont show product stock info on product page', 'woocommerce' )
    ) );
}
add_action( 'woocommerce_product_options_inventory_product_data', 'action_woocommerce_hide_product_stock_info', 10, 0 );

// 保存复选框配置
function action_woocommerce_hide_product_stock_info_object( $product ) {
    $checkbox = isset( $_POST['_hide_stock_status'] ) ? 'yes' : 'no';
    $product->update_meta_data( '_hide_stock_status', $checkbox );
}
add_action( 'woocommerce_admin_process_product_object', 'action_woocommerce_hide_product_stock_info_object', 10, 1 );

// 商品详情页隐藏对应库存信息
function filter_woocommerce_hide_product_stock( $html, $availability, $product ) {
    $hide_stock = $product->get_meta( '_hide_stock_status' );
    // 勾选隐藏则直接返回空字符串,所有库存状态都不展示
    if ( $hide_stock === 'yes' ) {
        return '';
    }
    // 未勾选返回原库存HTML
    return $html;
}
add_filter( 'woocommerce_stock_html', 'filter_woocommerce_hide_product_stock', 10, 3 );

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:57:03